Objective-c 之Foundation之NSNumber ,NSValue, NSDatespa
一、NSNumber具體用法以下:code
在Objective-c中有int的數據類型,那爲何還要使用數字對象NSNumber。這是由於不少類(如NSArray)都要求使用對象,而int不是對象。
NSNumber就是數字對象,咱們能夠使用NSNumber對象來建立和初始化不一樣類型的數字對象。orm
此外,還能夠使用實例方法爲先前分配的NSNumber對象設定指定的值,這些都是以initWith開頭,好比initWithLong。對象
如:blog
建立和初始化類方法 | 初始化實例方法 | 取值實例方法 |
---|---|---|
numberWithChar: | initWithChar: | charValue |
numberWithShort: | initWithShort: | shortValue |
... | ... | ... |
1 void test() 2 { 3 NSNumber *num = [NSNumber numberWithInt:10]; 4 5 NSDictionary *dict = @{ 6 @"name" : @"jack", 7 8 9 @"age" : num 10 11 }; 12 13 NSNumber *num2 = dict[@"age"]; 14 15 16 int a = [num2 intValue]; 17 18 NSLog(@"%d" , a); 19 }
1 #import <Foundation/Foundation.h> 2 3 int main() 4 { 5 // @20 將 20包裝成一個NSNumber對像 6 7 8 NSArray *array = @[ 9 10 @{@"name" : @"jack", @"age" : @20}, 11 12 @{@"name" : @"rose", @"age" : @25}, 13 14 @{@"name" : @"jim", @"age" : @27} 15 ]; 16 17 18 // 將各類基本數據類型包裝成NSNumber對象 19 @10.5; 20 @YES; 21 @'A'; // NSNumber對象 22 23 @"A"; // NSString對象 24 25 26 27 // 將age變量包裝成NSNumber對象 28 int age = 100; 29 @(age); 30 //[NSNumber numberWithInt:age]; 31 32 33 NSNumber *n = [NSNumber numberWithDouble:10.5]; 34 35 36 int d = [n doubleValue]; 37 38 39 40 int a = 20; 41 42 // @"20" 43 NSString *str = [NSString stringWithFormat:@"%d", a]; 44 NSLog(@"%d", [str intValue]); 45 46 return 0; 47 }
二、NSValue具體用法:繼承
NSNumber之因此能包裝基本數據類型爲對象,是由於繼承了NSValueci
1 #import <Foundation/Foundation.h> 2 3 4 int main() 5 { 6 7 // 結構體--->OC對象 8 9 CGPoint p = CGPointMake(10, 10); 10 // 將結構體轉爲Value對象 11 NSValue *value = [NSValue valueWithPoint:p]; 12 13 // 將value轉爲對應的結構體 14 // [value pointValue]; 15 16 NSArray *array = @[value ]; 17 18 19 20 21 return 0; 22 }
三、NSDate具體用法以下代碼:string
1 void use() 2 { 3 // 建立一個時間對象 4 NSDate *date = [NSDate date]; 5 // 打印出的時候是0時區的時間(北京-東8區) 6 NSLog(@"%@", date); 7 8 NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date]; 9 10 11 // 從1970開始走過的秒數 12 NSTimeInterval seconds = [date2 timeIntervalSince1970]; 13 14 // [date2 timeIntervalSinceNow]; 15 }
日期格式化:it
1 void date2string() 2 { 3 NSDate *date = [NSDate date]; 4 5 6 // 日期格式化類 7 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 8 9 // y 年 M 月 d 日 10 // m 分 s 秒 H (24)時 h(12)時 11 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //HH /hh 24小時致/12小時制 12 13 NSString *str = [formatter stringFromDate:date]; 14 15 NSLog(@"%@", str); 16 }
1 void string2date() 2 { 3 // 09/10/2011 4 NSString *time = @"2011/09/10 18:56"; 5 6 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 7 formatter.dateFormat = @"yyyy/MM/dd HH:mm"; 8 9 NSDate *date = [formatter dateFromString:time]; 10 NSLog(@"%@", date); 11 return 0; 12 }