我对我正在学习的教程感到有点困惑。有一行代码如下所示:
location.photoId = @([Location nextPhotoId]);
我不明白@()
语法的含义,它是什么?本声明中使用了变量的定义:
@interface Location : NSManagedObject <MKAnnotation>
Location *location = nil;
@property (nonatomic, retain) NSNumber *photoId;
在位置类中声明。
+(NSInteger)nextPhotoId{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger photoId = [defaults integerForKey:@"PhotoId"];
[defaults setInteger:photoId+1 forKey:@"PhotoId"];
[defaults synchronize];
return photoId;
}
位置类中的类方法。
也许没有必要在这里粘贴代码,但我想我应该让它更清楚。我只想知道@([Location nextPhotoId])
在这种情况下的意思,以及@()
代表什么?
任何帮助将不胜感激!
答案 0 :(得分:3)
@([Location nextPhotoId])
等同于[NSNumber numberWithInt:[Location nextPhotoId]]
@()是用于定义文字的语法。
方法[Location nextPhotoId]
返回一个整数,并将此整数设置为NSNumber(location.photoId),使用此语法。
参考:http://cocoaheads.tumblr.com/post/17757846453/objective-c-literals-for-nsdictionary-nsarray-and