0

我刚开始使用 obj-c 并创建了 2 个文件,一个 .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

.m 文件是

#import "CardUnit.h"

@implementation CardUnit

@synthesize gold  = _gold;
@synthesize name = _name;

@end

但它在@synthesize 行上给了我2个错误,它们是......

“具有分配属性的属性黄金的现有 ivar "_gold" 必须是 __unsafe 保留的”并且名称相同。

4

1 回答 1

1

从错误中我看到您正在使用 ARC, Automatic Reference Counting 。

基本上你可以去掉所有的@synthesize 语句,甚至没有必要对 ivar 的名字和黄金进行私有声明。

您只需要 CardUnit.h 就可以了:

@interface CardUnit : NSObject

  @property (assign) NSString *name;
  @property (assign) NSString *gold;

@end

Xcode 编译器将负责其余的工作。

另请参阅关于 SO 的回复

于 2012-07-08T14:32:41.447 回答