Objective c 为什么我会变得不安全?
我刚开始使用obj-c,我创建了两个文件,一个.h文件和一个.m文件。.h文件是Objective c 为什么我会变得不安全?,objective-c,Objective C,我刚开始使用obj-c,我创建了两个文件,一个.h文件和一个.m文件。.h文件是 #import <Foundation/Foundation.h> @interface CardUnit : NSObject { @private NSString *_name; NSString *_gold; } @property (nonatomic, assign) NSString *name; @property (nonatomic, assign) NSStr
#import <Foundation/Foundation.h>
@interface CardUnit : NSObject
{
@private
NSString *_name;
NSString *_gold;
}
@property (nonatomic, assign) NSString *name;
@property (nonatomic, assign) NSString *gold;
@end
但是它在@synthesis行上给了我两个错误,它们是
具有assign属性的属性gold的“现有ivar”\u gold“必须是“不安全保留”且名称必须相同。从错误中我看到您正在使用ARC、自动引用计数 基本上,您可以去掉所有@synthesis语句,甚至不需要对ivar的名称和gold进行私有声明 您所需要的只是CardUnit.h,如下所示:
@interface CardUnit : NSObject
@property (assign) NSString *name;
@property (assign) NSString *gold;
@end
Xcode编译器将处理其余部分
另请参见检查此问题:请注意,
@synthesis
对于稳定版本的Xcode(4.3)仍然是必需的。另外,OP在这些属性声明中使用assign
,这有点奇怪;它们可能是copy
或strong
。
@interface CardUnit : NSObject
@property (assign) NSString *name;
@property (assign) NSString *gold;
@end