學了這么久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)
猜你還喜歡下面的內(nèi)容