2012-08-10 54 views
2

把這個代碼:iOS iVar命名爲「Size」語法錯誤?

@interface SomeClass:NSObject 
{ 
@private 
    NSString* Size; 
} 

@property NSString* Size; 

@end 

-------------------------- 

@implementation SomeClass 
@synthesize Size; 

- (void) something 
{ 
    Size = @"syntax error : Expected identifier or '(' "; 
    self.Size = @"works ok"; 
} 

@end 

爲什麼這是一個語法錯誤? 「大小」是保留字還是已經在NSSObject中定義? 我得到兩個不同的項目的錯誤...

回答

8

大小是一個類型:

typedef long       Size; 

不使用它,你應該遵循Objective-C的約定,這是命名屬性與較低的案件。

+1

+1擊敗了我。 – Abizern 2012-08-10 14:10:49

+1

+2還擊敗了我也是如此 – 2012-08-10 14:17:33

+0

哇,謝謝你的快速回應:) – 2012-08-10 14:19:40

2

你有選擇 - 單擊或cmd +單擊大小(不self.Size)? X代碼應該告訴你,它是在MacTypes.h聲明爲0​​

1

這是MacTypes.h

typedef long Size; 

這將導致生成錯誤,我在我自己的代碼進行了測試。

使用目標C命名標準,你不會遇到衝突。

NSString *size;