中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OC category (分類,類目),日期類常用用法

發布時間:2020-06-20 03:29:56 來源:網絡 閱讀:1196 作者:yjf123546 欄目:開發技術

學了么久OC都知道OC中的統類和自定,當我在使用系統為提供的類時往往不能滿足我的需要,例如,字符串NSString提供了比較字符串的方法compare,排序的是升序,當需要按降序排序時,一種途徑是需要新建一個寫一個降序的方法,而另一個途徑就是系提供的category(,),分類(類目,category)的目的為了給沒有源代碼的類添加方法(只能添加方法,不能添加實例變量),是擴充一個類功能的方式之一,為原有類擴充的方法會成為原類的一部分,直接用系統類對象或者系統類調方法, 使用即可.

 分類也分為,h(接口部分).m(實現部分),.h文件中寫方法的聲明,.m文件中寫方法的實現,

 (1),新建一個,在新建類時選擇Objective-C category,

建立之后,.h文件里@interface + 要擴展的類的類名 +(分類名)@end結束,

先聲明分類方法

/兩個字符串比較對象;

-  (NSComparisonResult)sortDescending:(NSString *)descending;

.m文件里實現

//兩個字符串比較對象;

- (NSComparisonResult)sortDescending:(NSString *)descending

{

    return -[selfcompare:descending];

}

 

main函數里可以直接使用,:

array按照降序排序

NSArray *array = @[@"dd",@"bb",@"aa",@"ee",@"mm"];

NSArray *arrDescending = [array sortedArrayUsingSelector:@selector(sortDescending:)];

 NSLog(@"%@",arrDescending);

(

    mm,

    ee,

    dd,

    bb,

    aa

)

 

 

, 日期常用方法用法 NSDate

1,基本用法:

1),建一個,賦值為當前日期date 創建的NSDate對象,獲得的永遠是0時區的時間,我們是東八區,需要加上8個小時

 

NSDate *date = [NSDatedate];

2),創建一個明天此時的日期(時間間隔是以秒為單位的)dateWithTimeIntervalSinceNow:

 

        NSDate *tomorrow = [NSDatedateWithTimeIntervalSinceNow:24 * 60 * 60];

        NSLog(@"%@",tomorrow);

        創建一個昨天此時的日期

        NSDate *yesterday = [NSDatedateWithTimeIntervalSinceNow:-24 * 60 * 60];

        NSLog(@"%@",yesterday);

        3).獲取兩個日期的時間間隔  timeIntervalSinceDate:  實現過程是前者減去后者

        NSTimeInterval intervil = [tomorrow timeIntervalSinceDate:yesterday];

        NSLog(@"%.1f",intervil/60/60/24);

        4),比較日期的早晚

        (1),獲得兩個日期中較早的日期 earlierDate:

        NSDate *earlier = [tomorrow earlierDate:yesterday ];

        NSLog(@"%@",earlier);

       

        (2),獲得兩個日期中較晚的日期  laterDate:

        NSDate *later = [tomorrow laterDate:yesterday ];

        NSLog(@"%@",later);

       

        

        (3),兩個日期比較   compare:

NSComparisonResult類型是基本數據類型duoble的重定義

        NSComparisonResultcomparDate = [tomorrow compare:yesterday ];

        NSLog(@"%ld",comparDate);

 

       

       

       

2,日期類與字符串的相互轉換

 (1), NSDateFormatter是一個日期格式類,將日期以一定的格式進行轉換,(原理,轉換成字符串),分為三步

 

 NSDate *dateNow = [NSDatedate];

 

 第一步: 創建日期格式類對象

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

 

 第二步指定日期格式   formatter

 

        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

HH表示24小時制,hh表示12小時制,MM表示月份,mm表示分鐘,DD表示當前是該年的第幾天,dd表示當月天數,ss表示秒數,如果年份為yy,則輸出時只顯示年份的后兩位,如果為其他的則顯示完整年份

 

第三步: 轉換   stringFromDate:

       NSString *dateStr = [[NSStringalloc] init];

        dateStr = [formatter stringFromDate:dateNow];

 

 

  (2),將日期格式轉換為NSDate對象,將日期按照指定的格式轉換為日期格式串,

例子:

將日期格式串轉換為日期對象@"2008050110231"        NSString *datestr = @"20080501102318";

 

第一步: 創建日期格式類對象

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

 

第二步:

        (1),設置日期的格式 (有四種)

        [formatter setDateStyle:NSDateFormatterFullStyle];

 

        (2),設置時間的格式 (有四種)

        [formatter setTimeStyle:NSDateFormatterFullStyle];

 

        (3)設置日期格式(一定要和日期格式串中的日期格式保持一致)

    [formatter setDateFormat:@"yyyyMMddHHmmss"];

 

第三步: 轉換  dateFromString:  將格式串轉換為日期對象

       NSDate *date2 = [formatter dateFromString:datestr];

        NSLog(@"%@",date2);

 

 

要注意的是:日期類對象輸出默認的是0時區的時間,如: 2014-08-12 02:38:30 +0000,是中國時間上午2014-08-12 10:38:30


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奈曼旗| 巴南区| 潮州市| 达拉特旗| 德清县| 阿拉善盟| 洛南县| 和平县| 瓦房店市| 饶阳县| 淳化县| 唐河县| 沁源县| 金阳县| 汽车| 涟源市| 离岛区| 慈溪市| 莱阳市| 公安县| 剑川县| 香格里拉县| 邯郸县| 晋城| 双城市| 阜南县| 邵阳市| 垫江县| 荆州市| 鄄城县| 宝山区| 兴隆县| 彰化市| 江门市| 武邑县| 桂东县| 南开区| 汶上县| 丹东市| 洞口县| 玉龙|