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

为什么这是语法错误?“Size”是保留字还是已在 NSSObject 中定义?我在两个单独的项目中遇到错误...

4

3 回答 3

8

尺寸是一种类型:

typedef long                            Size;

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

于 2012-08-10T14:10:12.873 回答
2

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

于 2012-08-10T14:11:30.660 回答
1

这是在 MacTypes.h

typedef long Size; 

它会导致构建错误,我在自己的代码中对其进行了测试。

使用客观的 C 命名标准,你不会遇到冲突。

NSString *size;
于 2012-08-10T14:16:47.043 回答