標籤:style blog http color io os ar 使用 for
Objective-c 之Foundation之NSNumber ,NSValue, NSDate
1、NSNumber具體用法如下:
在Objective-c中有int的資料類型,那為什麼還要使用數字對象NSNumber。這是因為很多類(如NSArray)都要求使用對象,而int不是對象。
NSNumber就是數字對象,我們可以使用NSNumber對象來建立和初始化不同類型的數字對象。
此外,還可以使用執行個體方法為先前分配的NSNumber對象設定指定的值,這些都是以initWith開頭,比如initWithLong。
如:
建立和初始化類方法 |
初始化執行個體方法 |
取值執行個體方法 |
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" : num10 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 // 將各種基礎資料型別 (Elementary Data Type)封裝成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 }
2、NSValue具體用法:
NSNumber之所以能封裝基礎資料型別 (Elementary Data Type)為對象,是因為繼承了NSValue
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 }
3、NSDate具體用法如下代碼:
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 }
日期格式化:
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 }
黑馬程式員_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate