首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NSNumber的@"“字符串类型文字

NSNumber的@"“字符串类型文字
EN

Stack Overflow用户
提问于 2010-09-20 20:09:49
回答 3查看 7K关注 0票数 20

我喜欢在Objective C中用@"string"表示法快速处理字符串文字。有没有办法获得与NSNumbers类似的行为?我更多地处理数字,到处都是[NSNumber numberWithWhatever:]调用,这太乏味了。即使创建一个宏也可以,但我对如何最好地做到这一点的知识是有限的。

EN

回答 3

Stack Overflow用户

发布于 2013-07-09 04:01:34

既然没有人提到这一点。如果需要将值包装在NSNumber中,NSNumber文本语法如下所示。

代码语言:javascript
复制
int val = 13;
NSNumber *numVal = @(val);
票数 32
EN

Stack Overflow用户

发布于 2012-06-20 21:14:07

Clang v3.1开始,你现在可以使用Objective-C文本了。

代码语言:javascript
复制
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]

所以,在回答你的具体问题时:

代码语言:javascript
复制
[Tyler setArms:[[[NSNumber alloc] initWithInt:1] autorelease]];

现在可以写成:

代码语言:javascript
复制
[Tyler setArms:@1];

也有用于数组和字典的文字,但它们超出了本问题的范围。

要利用Xcode中的文字,至少需要4.4版--这是Apple的LLVM4.0编译器附带的版本。

票数 31
EN

Stack Overflow用户

发布于 2012-07-26 01:56:21

Xcode4.4引入了用于NSNumberNSArrayNSDictionary的文本的rjstelling mentioned的Clang特性。语法很简单:

代码语言:javascript
复制
//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
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3751317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档