在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在Clang 3.7之前,Objective-C已经可以使用类似@100、@YES、@10.5f等字面量表示一个NSNumber对象;用类似@"xxx"的字面量表示一个NSString对象;用@[]字面量表示一个NSArray对象;用@{}字面量表示一个NSDictionary对象;用@(expr)字面量根据expr的类型来表示其对应的上述类型的其中之一,此外还包括一个类型——NSValue。
struct __attribute__((objc_boxable)) StructA { int a; float f; }; // 这里使用了C99中所引入的结构体复合字面量表达形式以及designated initializer NSValue *value = @((struct StructA){.a = 10, .f = 0.5f}); struct StructA sa; [value getValue:&sa]; NSLog(@"The value is: %.1f", sa.a + sa.f); 上述代码中我们看到,一个结构体对象通过@()被封装为了一个NSValue对象。而我们可以使用NSValue类中的getValue方法将其所封装的结构体或联合体的内容完全返回出来。 |
请发表评论