2014-01-16 46 views
0

我對我正在學習的教程有點困惑。有一行代碼看起來像這樣:瞭解語法(將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])在這種情況下的含義以及@()代表什麼?

任何幫助,將不勝感激!

+2

'@()'是創建對象文字的通用語法。 '@(some_integer)'和'@(some_floating_point)'創建'NSNumber'對象,'@(some_char_pointer)'創建'NSString's,'@ []'和'@ {}'創建'NSArray'和'NSDictionary '文字,分別。 – 2014-01-16 10:20:46

+2

可能重複 - http://stackoverflow.com/questions/21084156/what-does-mean – Nayan

+1

'@([Location nextPhotoId])'只是相當於 '[NSNumber numberWithInt:[Location nextPhotoId]];' –

回答