Tyl*_*ton 4 objective-c literals nsnumber foundation
我是Objective-C的新手.我知道C和C++,但Objective-C有相当的学习曲线.无论如何,是否有更短的方式(可能通过某种NSNumber文字,如果存在)写下面的内容:
[Tyler setArms:[[[NSNumber alloc] autorelease] initWithInt:1]];
Run Code Online (Sandbox Code Playgroud)
rjs*_*ing 16
从Clang v3.1开始,您现在可以使用Objective-C文字.
NSNumber *fortyTwo = @42; // equivalent to [NSNumber numberWithInt:42]
NSNumber *fortyTwoUnsigned = @42U; // equivalent to [NSNumber numberWithUnsignedInt:42U]
NSNumber *fortyTwoLong = @42L; // equivalent to [NSNumber numberWithLong:42L]
NSNumber *fortyTwoLongLong = @42LL; // equivalent to [NSNumber numberWithLongLong:42LL]
Run Code Online (Sandbox Code Playgroud)
所以,回答你的具体问题:
[Tyler setArms:[[[NSNumber alloc] autorelease] initWithInt:1]];
Run Code Online (Sandbox Code Playgroud)
现在可以写成:
[Tyler setArms:@1];
Run Code Online (Sandbox Code Playgroud)
数组和字典也有文字,但它们超出了这个问题的范围.
要利用Xcode中的文字,您至少需要4.4版本(在撰写本文时,这只是一个预览版).
注:LLVM是一个开源项目,所以没有的,这是受到苹果公司的保密协议.
是的,只需使用众多辅助函数之一,例如numberWithInt::
[Tyler setArms:[NSNumber numberWithInt:1]];
Run Code Online (Sandbox Code Playgroud)
表达式[NSNumber numberWithInt:1]相当于[[[NSNumber alloc] initWithInt:1] autorelease],相当于[[[NSNumber alloc] autorelease] initWithInt:1].后一种表达非常罕见.
| 归档时间: |
|
| 查看次数: |
8452 次 |
| 最近记录: |