OC10_类的扩展
1.NSDate(日期) NSData(數(shù)據(jù))
(1).獲取當(dāng)前時(shí)間.
NSDate *date = [NSDate date];
// NSLog輸出日期時(shí),會(huì)打印相對應(yīng)的零時(shí)區(qū)的時(shí)間
NSLog(@"%@", date);
(2).獲取任意時(shí)間.
// NSTimeInterval 時(shí)間間隔 double類型.
// NSTimeInterval 正 未來時(shí)間.
// NSTimeInterval 負(fù) 過去時(shí)間.
NSDate *anyDate = [NSDate dateWithTimeIntervalSinceNow:8 * 60 * 60]; // 打印的是零時(shí)區(qū)的時(shí)間.
NSLog(@"%@", anyDate);
(3).獲取時(shí)間間隔
NSTimeInterval time = [date timeIntervalSinceDate:anyDate];
NSLog(@"%.2f", time / 60 / 60);
(4).日期格式化轉(zhuǎn)換器.
// NSDateFormatter
NSDateFormatter *f = [[[NSDateFormatter alloc] init] autorelease];// y 年份// M 月份// d 日期// H 小時(shí)// m 分鐘// s 秒// a AM, PM// z 時(shí)區(qū)// G AD(公元)/BC(公元前)// E 星期f.dateFormat = @"yyyy-MM-dd HH:mm:ss a z Gr EEEE";// date -> string
NSString *dateStr = [f stringFromDate:date];
NSLog(@"%@", dateStr);
// string -> date
NSString *string = @"2015年9月10日 10時(shí)22分10秒";
f.dateFormat = @"yyyy年MM月dd日 HH時(shí)mm分ss秒"; // HH必須大寫,有的版本只有大寫好使.
NSDate *newDate = [f dateFromString:string];
NSLog(@"%@", newDate);
2.類目
(1).Category 類目/分類/類別
作用:給系統(tǒng)的類額外添加方法(包括一般類和系統(tǒng)類).main.mNSMutableArray *array= [NSMutableArray array];
[array addObject:@"a"];
[array addObject:@"b"];
[array addObject:@"c"];
[array addObject:@"d"];
for (NSInteger i = 0; i < array.count - 1; i++) {for (NSInteger j = 0; j < array.count - 1 - i; j++) {if ([array[j] compareDescending:array[j + 1]] == 1 ) {[array exchangeObjectAtIndex:j withObjectAtIndex:j + 1];}}
}
NSLog(@"%@", array);
新建一個(gè)Person類
Person.h
// 接口
#import <Foundation/Foundation.h>@interface Person : NSObject@property(nonatomic, retain)NSString *name;- (void)sayHi;@end// 類目 類名 類目名 // 類目的聲明.
@interface Person (AAA)- (void)printPerson;@endPerson.m
#import "Person.h"@implementation Person(2).類目的實(shí)現(xiàn)
@implementation Person (AAA)- (void)printPerson {// 類目中可以調(diào)用類的屬性以及成員變量,還有方法NSLog(@"%@", self.name);
}@end類目,通常需要?jiǎng)?chuàng)建一對文件 .h 和 .m 用于給系統(tǒng)的類添加方法.
延展,通常直接寫在.m中
新建一個(gè)類目文件,NSString + CoCo
NSString + CoCo.h#import <Foundation/Foundation.h>
// 類目
// 文件名: 類型名 + 類目名
// 類目的方法相當(dāng)于寫在當(dāng)前類中.
// 當(dāng)類目要重寫類方法時(shí) 只會(huì)執(zhí)行類目中的方法.
// 類目中的方法優(yōu)先級比較高.
@interface NSString (CoCo)// 字符串降序的方法
- (NSComparisonResult)compareDescending:(NSString *)string;
@endNSString + CoCo.m#import "NSString+CoCo.h"@implementation NSString (CoCo)- (NSComparisonResult)compareDescending:(NSString *)string {// 降序方法return -[self compare:string];
}@end3.延展
(1).Extension 類的延展.
作用:管理私有方法和屬性.main.m
Person *person = [[Person alloc] init];
person.name = @"heihei";
私有屬性 外部不能訪問 只能在類內(nèi)部使用;
[person sayHi];新建一個(gè)Person類.
person.h#import <Foundation/Foundation.h>@interface Person : NSObject@property(nonatomic, retain)NSString *name;@endperson.m
#import "Person.h"// 延展 私有聲明
@interface Person ()
@property(nonatomic, retain) NSString *sex; // 私有屬性
@property(nonatomic, assign) NSUInteger age;
@property(nonatomic, retain) NSString *hobby;// 3.私有方法聲明.
- (void)Hello;@end@implementation Person// 私有方法實(shí)現(xiàn).
- (void)Hello {NSLog(@"你好!~");
}- (void)sayHi {NSLog(@"卡卡");// 在類的內(nèi)部區(qū)調(diào)用私有方法.[self Hello];
}@end
總結(jié)
- 上一篇: 相机光学(二十)——三原色与白平衡
- 下一篇: 数据库笔试面试(第一版)——根据题目完成