Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么我会变得不安全?_Objective C - Fatal编程技术网

Objective c 为什么我会变得不安全?

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

我刚开始使用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) 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