2

このコードを取る:

@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ですでに定義されていますか?2つの別々のプロジェクトでエラーが発生します...

4

3 に答える 3

8

サイズはタイプ:

typedef long                            Size;

使用しないでください。Objective-C の規則に従う必要があります。これは、小文字でプロパティに名前を付けるというものです。

于 2012-08-10T14:10:12.873 に答える
2

オプション-クリックまたはcmd+サイズ(self.Sizeではない)をクリックしましたか?Xコードは、MacTypes.hで次のように宣言されていることを通知する必要があります。typedef long Size;

于 2012-08-10T14:11:30.660 に答える
1

これはMacTypes.hにあります

typedef long Size; 

ビルドエラーが発生します。自分のコードでテストしました。

Objective Cの命名基準を使用すれば、競合にぶつかることはありません。

NSString *size;
于 2012-08-10T14:16:47.043 に答える