我對我正在學習的教程有點困惑。有一行代碼看起來像這樣:瞭解語法(將NSInteger轉換爲NSNumber)
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])
在這種情況下的含義以及@()
代表什麼?
任何幫助,將不勝感激!
'@()'是創建對象文字的通用語法。 '@(some_integer)'和'@(some_floating_point)'創建'NSNumber'對象,'@(some_char_pointer)'創建'NSString's,'@ []'和'@ {}'創建'NSArray'和'NSDictionary '文字,分別。 – 2014-01-16 10:20:46
可能重複 - http://stackoverflow.com/questions/21084156/what-does-mean – Nayan
'@([Location nextPhotoId])'只是相當於 '[NSNumber numberWithInt:[Location nextPhotoId]];' –