我用:
@property(nonatomic, weak) IBOutlet UIView *videoView;
有警告:
属性'videoView'需要定义方法'videoView' - 使用@synthesize,@ dynamic或在此类实现中提供方法实现
然后我尝试:
@synthesize videoView;
出现错误:
当前部署目标不支持自动__weak引用。
另一个问题:
@property(nonatomic, unsafe_unretained) IBOutlet UIView *videoView;
- (void)dealloc {
videoView = nil;
}
我可以这样使用吗?
答案 0 :(得分:3)
当前部署目标不支持自动__weak引用。
问题是iOS 4.x不支持自动清零弱引用。这意味着,当一个弱引用的对象被销毁时,弱引用会继续指向它,如果使用它可能会导致崩溃。
iOS 5及更高版本支持自动归零弱引用。要利用它们并清除上面的警告,请将最低iOS目标提高到5.0,然后使用5.0 SDK。
答案 1 :(得分:1)
您的部署目标是什么?您需要至少拥有iOS4才能拥有weak
引用,并且您需要使用带有Xcode4.4或更高版本的LLVM4才能声明您的@property
变量,而不必提供{@synthesize
变量1}}。
至于第二个问题 - 你想做什么。如果你只是试图在dealloc上安全地将变量设置为nil,那么它是可以的,因为你声明它是unsafe_unretained
你不拥有它所以你不应该释放它。