iOS6放出来有一段时间,添加了许多特性,其中最引人注意的是literals(简写),今天抽空整理了一下,可能不完善,聊做备忘速查只用。
-
字符串
-
整型
-
浮点型
-
布尔型
Objective-C++ 也同样支持@true
和@false
-
运算
@( expression )
- 数值运算
NSNumber *smallestInt = @(-INT_MAX - 1); // [NSNumber numberWithInt:(-INT_MAX - 1)]; NSNumber *piOverTwo = @(M_PI / 2); // [NSNumber numberWithDouble:(M_PI / 2)];
- 枚举
typedef enum { Red, Green, Blue } Color; NSNumber *favoriteColor = @(Green); // [NSNumber numberWithInt:((int)Green)];
- 字符串
NSString *path = @(getenv("PATH")); // [NSString stringWithUTF8String:(getenv("PATH"))]; NSArray *pathComponents = [path componentsSeparatedByString:@":"];
- C字符串
NSMutableArray *args = [NSMutableArray new]; NSMutableDictionary *options = [NSMutableDictionary new]; while (--argc) { const char *arg = *++argv; if (strncmp(arg, "--", 2) == 0) { options[@(arg + 2)] = @(*++argv); // --key value } else { [args addObject:@(arg)]; // positional argument } }
- 数值运算
-
容器(集合)类
- NSDictionary
NSDictionary *dictionary = @{ @"name" : NSUserName(), @"date" : [NSDate date], @"processInfo" : [NSProcessInfo processInfo] }; NSString *str = dictionary[@"name"];
- NSArray
NSArray *array = @[ @"Hello", NSApp, [NSNumber numberWithInt:42] ]; NSString *str = array[0];
- NSMutableArray
NSArray *array = [ @[ @"Ocarina", @"Flute", @"Harp" ] mutableCopy]; NSString *str = array[0]; array[0] = @“change”;
- NSDictionary
-
操作
注意事项:
- 生成的对象都是
autorelease
; - 兼容6一下设备需进行
可用性检测
,以防崩溃。