我喜欢在Objective C中用@"string"
表示法快速处理字符串文字。有没有办法获得与NSNumber
s类似的行为?我更多地处理数字,到处都是[NSNumber numberWithWhatever:]
调用,这太乏味了。即使创建一个宏也可以,但我对如何最好地做到这一点的知识是有限的。
发布于 2013-07-09 04:01:34
既然没有人提到这一点。如果需要将值包装在NSNumber中,NSNumber文本语法如下所示。
int val = 13;
NSNumber *numVal = @(val);
发布于 2012-06-20 21:14:07
从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]
所以,在回答你的具体问题时:
[Tyler setArms:[[[NSNumber alloc] initWithInt:1] autorelease]];
现在可以写成:
[Tyler setArms:@1];
也有用于数组和字典的文字,但它们超出了本问题的范围。
要利用Xcode中的文字,至少需要4.4版--这是Apple的LLVM4.0编译器附带的版本。
发布于 2012-07-26 01:56:21
Xcode4.4引入了用于NSNumber
、NSArray
和NSDictionary
的文本的rjstelling mentioned的Clang特性。语法很简单:
//Number literal
NSNumber *pi = @3.14;
//Array literal
NSArray *primes = @[ @2, @3, @5, @7, @11 ]; //No nil terminator needed
//Dictionary literal
NSDictionary *dict = @{
@"key1": @42,
@"key2": @"Another key",
@3: @"A NSNumber key"
}; //No nil terminator, stored in "key:value," format
https://stackoverflow.com/questions/3751317
复制相似问题