OCcategory(分類,類目),日期類常用用法-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)企業(yè)建站,10余年網(wǎng)站建設經(jīng)驗,專注于網(wǎng)站建設技術(shù),精于網(wǎng)頁設計,有多年建站和網(wǎng)站代運營經(jīng)驗,設計師為客戶打造網(wǎng)絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于成都網(wǎng)站設計、網(wǎng)站制作中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。

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

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

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

先聲明分類方法

/兩個字符串比較對象;

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

在.m文件里實現(xiàn)

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

- (NSComparisonResult)sortDescending:(NSString *)descending

{

   return -[selfcompare:descending];

}

在main函數(shù)里可以直接使用,如:

對數(shù)組array按照降序排序

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

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

 NSLog(@"%@",arrDescending);

輸出結(jié)果為

(

   mm,

   ee,

   dd,

   bb,

   aa

)

二, 日期類常用方法用法 NSDate

1,基本用法:

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

NSDate *date = [NSDatedate];

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

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

       NSLog(@"%@",tomorrow);

       創(chuàng)建一個昨天此時的日期

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

       NSLog(@"%@",yesterday);

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

       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類型是基本數(shù)據(jù)類型duoble的重定義

       NSComparisonResultcomparDate = [tomorrow compare:yesterday ];

       NSLog(@"%ld",comparDate);

2,日期類與字符串的相互轉(zhuǎn)換

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

 NSDate *dateNow = [NSDatedate];

 第一步: 創(chuàng)建日期格式類對象

       NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

 第二步: 指定日期格式  formatter

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

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

第三步: 轉(zhuǎn)換  stringFromDate:

      NSString *dateStr = [[NSStringalloc] init];

       dateStr = [formatter stringFromDate:dateNow];

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

例子:

將日期格式串轉(zhuǎn)換為日期對象@"2008年05月01日10時23分1秒"       NSString *datestr = @"2008年05月01日10時23分18秒";

第一步: 創(chuàng)建日期格式類對象

       NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

第二步:

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

       [formatter setDateStyle:NSDateFormatterFullStyle];

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

       [formatter setTimeStyle:NSDateFormatterFullStyle];

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

   [formatter setDateFormat:@"yyyy年MM月dd日HH時mm分ss秒"];

第三步: 轉(zhuǎn)換 dateFromString:  將格式串轉(zhuǎn)換為日期對象

      NSDate *date2 = [formatter dateFromString:datestr];

       NSLog(@"%@",date2);

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

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站標題:OCcategory(分類,類目),日期類常用用法-創(chuàng)新互聯(lián)
URL標題:http://bm7419.com/article18/igpdp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、移動網(wǎng)站建設營銷型網(wǎng)站建設、網(wǎng)站設計品牌網(wǎng)站制作、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營