gpt4 book ai didi

iphone - 使用 ARC 并针对 iOS 4.0 时如何替换弱引用?

转载 作者:IT王子 更新时间:2023-10-29 07:30:29 25 4
gpt4 key购买 nike

我已经开始使用 Xcode 4.2 开发我的第一个 iOS 应用程序,目标是使用“实用程序”模板(带有 FlipsideViewController 的模板)的 iOS 5.0。

我读到,由于 ARC 是一个编译时功能,它也应该与 iOS 4 兼容,所以我尝试将我的应用程序定位到 4.3,并尝试编译它。当我这样做时,我收到此错误:

FlipsideViewController.m: 错误:自动引用计数问题:当前部署目标不支持自动 __weak 引用

它引用了这一行:

@synthesize delegate = _delegate;

该变量声明为:

@property (weak, nonatomic) IBOutlet id <FlipsideViewControllerDelegate> delegate;

我知道 iOS 4 不支持“弱引用”,但我真的不明白为什么我想一开始就使用弱引用,我也不知道如何重写内容以避免使用它,同时仍然利用 ARC(毕竟,它应该适用于 iOS 4 和 5,对吧?)

最佳答案

要针对较旧的操作系统,您可以在属性声明中使用 unsafe_unretained 而不是 weak,它应该以相同的方式工作。 weak 在它们的目标消失时引用 nil 自身,但是 unsafe_unretained 留下了你链接到的对象在被释放时可能变成悬空指针的可能性。后者的行为与您在手动内存管理中使用 assign 作为属性声明的行为相同。

这样做是为了避免保留循环,我在回答 here 中提到了这一点.您不希望有一个指向可能有一个指向原始对象的强指针的东西的强指针。然后什么都不会被正确释放。

关于iphone - 使用 ARC 并针对 iOS 4.0 时如何替换弱引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com