我有以下代码(出现错误):
.h文件
#import <Foundation/Foundation.h>
@interface Unit : NSObject
{
UIImageView *view;
CGRect rect;
}
@property(readonly, assign) UIImageView *view;
@property(readwrite, assign) CGRect rect;
@end
.m文件
#import "Unit.h"
@implementation Unit
@synthesize view; //Error appears here
@synthesize rect;
@end
出现的错误是existing ivar 'view' for unsafe_unretained property 'view' must be __unsafe_unretained
。这是什么意思,我该如何解决?
答案 0 :(得分:0)
在您的示例中,您使用过(readonly, assign ),但是因为您还明确创建了ivar,所以需要添加__unsafe_unretained
限定符(由于根据{{3}}上的自动引用计数文档分配限定符。
#import <Foundation/Foundation.h>
@interface Unit : NSObject
{
CGRect rect;
}
@property(readonly, assign) UIImageView *view;
@property(readwrite, assign) CGRect rect;
@end
只需删除ivar声明,编译器就会生成正确的所有权限定符。