Iphone iOS iVar命名为;“尺寸”;语法错误?

Iphone iOS iVar命名为;“尺寸”;语法错误?,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,以这个代码为例: @interface SomeClass:NSObject { @private NSString* Size; } @property NSString* Size; @end -------------------------- @implementation SomeClass @synthesize Size; - (void) something { Size = @"syntax error : Expected identifier or '('

以这个代码为例:

@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中定义? 我在两个单独的项目中发现错误…

大小是一种类型:

typedef long                            Size;

不要使用它,您应该遵循Objective-C约定,即用小写字母命名属性。

您是否选择单击或cmd+单击大小(而不是self.Size)? X代码应该告诉您,它在MacTypes.h中声明为typedef long Size

这是在MacTypes.h中

typedef long Size; 
这将导致生成错误,我在自己的代码中对其进行了测试

使用objective C命名标准,您不会遇到冲突

NSString *size;