automatic-ref-counting相关内容

ARC还是不ARC?优缺点都有什么?

我还没有使用 ARC,因为我目前正在处理的项目中的大部分代码都是在 iOS 5.0 之前编写的. 我只是想知道,不手动保留/释放的便利(以及由此产生的更可靠的代码?)是否超过使用 ARC 的任何“成本"?您对 ARC 有哪些体验,您会推荐它吗? 所以: ARC 能为项目带来多少好处? ARC 是否像 Java 中的垃圾回收一样有成本? 您是否使用过 ARC,如果使用过,到目前 ..
发布时间:2022-01-14 19:22:12 移动开发

ARC 和桥接铸件

使用 ARC,我不能再将 CGColorRef 转换为 id.我了解到我需要进行桥接演员表.根据 clang 文档: 桥接演员表是使用以下三个关键字之一注释的 C 风格演员表: (__bridge T) op 将操作数转换为目标类型 T.如果 T是一个可保留的对象指针类型,那么 op 必须有一个不可保留的指针类型.如果 T 是不可保留的指针类型,那么 op 必须有一个可保留的对象指针类 ..

将 uiimage 设置为 nil 不会使用 ARC 释放内存

我有一个滚动视图,可以在滚动页面时显示不同的图像,例如 PhotoScroller.我正在使用ARC.当有人滚动到另一个页面时,我将当前未显示的 UIImageView 的图像属性设置为 nil,因为(试图)避免内存崩溃,这种情况仍在发生.然后当用户滚动到一个新页面时,该页面的图像被设置为 UIImageView 的图像属性,以及它之前和之后的页面(为了流畅查看).页面的 UIImage 都保存在 ..

在设备上调试时 Ad Hoc iPhone SIGSEGV 崩溃模拟器工作

应用程序在我尝试登录后立即崩溃,所以这不是看门狗内存问题 原因:_mh_execute_header尝试使用 ASIHTTPRequest 发出网络请求时应用程序崩溃.请求永远不会触及服务器.ASIHTTPRequest:我使用 -fno-objc-arc 从 ARC 中省略 ASIHTTPRequest. 我相信以下调用导致了我的问题,因为当我发出请求时,我的调用甚至从未触及服务器. ..

Objective-C - ARC - NSNumber - 分段错误

我有一个 Objective-C 程序,我正在使用 ARC(自动引用计数),它在第 23 行引发了分段错误(参见下面的程序). 问题1)为什么会出现分段错误? 下面是程序: #import@界面汽车:NSObject@property (weak) NSNumber* 门;@结尾@实施汽车@合成门;@结尾主函数(){系统(“清除"); ..

[CFNumber release]: 发送给已释放实例的消息

当我从 History Core Data 对象记录/请求值时,以下代码返回以下错误: -[CFNumber release]: 消息发送到deallocated instance 0x17ea2a90 我最初认为其他地方存在问题,并且花了无数小时试图调试它,但没有成功.经过进一步测试,我已经确定崩溃是从 History Core Data 对象请求某些值.任何人都可以看到为什么对象值被释放的 ..
发布时间:2022-01-12 12:00:29 移动开发

dyld`dyld_fatal_error,iOS 上不兼容的 api 的原因是什么?

我正在将我的部分项目迁移到 iOS 5/ARC.最古老的项目之一(iOS 4.2,用于支持 iPod Touch 2g 的 armv6)正在给我: dyld`dyld_fatal_error:0x8feb1070:int30x8feb1071:无 就在启动图像之后,但在进入主之前.必须将一些库/代码更新到 iOS 5,但是哪一个?有可能使用比猜测更好的方法吗?? 解决方案 自己尝试重现 ..
发布时间:2022-01-12 11:32:37 移动开发

SpriteKit 没有释放所有使用的内存

我已经在 SO 和其他网站上准备了许多(如果不是全部)关于处理 SpriteKit 和内存问题的灾难的文章.我的问题和其他许多人一样,是在我离开 SpriteKit 场景后,几乎没有释放场景会话期间添加的任何内存.我已经尝试在我找到的文章中实施所有建议的解决方案,包括但不限于... 1) 确认在 SKScene 类中调用了 deinit 方法. 2) 确认场景类中没有strong对父V ..

UIViewController -dealloc 方法未调用

我正在使用自动引用计数.我有一个自定义的 UIViewController 子类,每当我调用 -presentViewController:animated:completion: 或从超级视图中删除它的视图时,我都希望 NSLog像“我被释放"这样的东西,所以我知道视图控制器已成功删除.我已经在我的视图控制器中实现了 -dealloc 方法.但是,我开始了一个测试项目,其中我只有两个 UIVie ..

UIViewController 不保留其以编程方式创建的 UISearchDisplayController

在 UIViewController 文档关于 searchDisplayController 属性 1 它说: 如果您以编程方式创建搜索显示控制器,则该属性会在初始化时由搜索显示控制器自动设置. 当我这样创建 UISearchDisplayController 时: [[[UISearchDisplayController alloc] initWithSearchBar:sear ..

语义问题:属性的合成 getter 遵循 Cocoa 命名约定以返回“拥有的"对象

我目前正在使用 iOS 5 SDK 尝试开发我的应用程序.我正在尝试使 NSString 成为一个属性,然后在 .m 文件中合成它(我之前已经这样做了,没有任何问题).现在,我遇到了这个:“语义问题:属性的合成 getter 遵循 Cocoa 命名约定来返回‘拥有的’对象." 这是我的代码:.h @interface ViewController : UIViewController {N ..

ios - 解析 NSObjCRuntime、NSZone 和 NSObject 中的问题

我正在使用 AddThis 在我的 iOS 应用中添加共享选项. 我已经导入了这些类并将 -fno-objc-arc 标志添加到所有导入的类中,因为它们不使用 ARC. 但是,当我尝试运行该应用程序时,我遇到了一系列解析问题,例如: 预期的标识符或'('未知类型名称“NSString"未知类型名称“协议"... 这些错误发生在 NSObjCRuntime、NSZone 和 NSOb ..
发布时间:2021-12-31 22:18:11 移动开发

将 Objective-C 指针类型“NSString *"转换为 C 指针类型“CFStringRef"(又名“const struct __CFString *")需要桥接转换

将 Objective-C 程序转换为 Objective-C ARC 时,出现错误: “将 Objective-C 指针类型‘NSString *’转换为 C 指针类型‘CFStringRef’(又名‘const struct __CFString *’)需要桥接转换" 代码如下: - (NSString *)_encodeString:(NSString *)string{NSStrin ..
发布时间:2021-12-31 22:00:34 移动开发

NSString stringWithUTF8String 内存泄漏:启用 ARC

在我的应用程序中,我启用了 ARC.但是在我的应用程序中,以下几行根据仪器给了我内存泄漏.它在 ios 7.0 中. -(id)init{变量 = [[NSMutableArray 分配] init];//泄漏事件 = [[NSMutableArray 分配] init];//泄漏回归自我;} 更新 但是在我的应用程序中,如果我执行以下操作,则不会显示任何泄漏.但我无法将项目添加到变量中 ..

iOS 7.0 和 ARC:UITableView 在行动画后永远不会释放

我有一个非常简单的带有 ARC 的测试应用程序.其中一个视图控制器包含 UITableView.在制作行动画(insertRowsAtIndexPaths 或 deleteRowsAtIndexPaths)之后,UITableView(和所有单元格)永远不会被释放.如果我使用 reloadData,它工作正常.在 iOS 6 上没有问题,只有 iOS 7.0.任何想法如何解决此内存泄漏? -(v ..

使用 Parse.framework iOS 链接错误

我尝试在我的项目中导入解析框架.我确保我的项目喜欢它,但我找不到任何关于它是否“电弧敏感"的信息.我的项目是基于弧的. 这是我得到的错误: 架构 i386 的未定义符号:“_SCNetworkReachabilityCreateWithName",引用自:-[PFCommandCache init] 在解析(PFCommandCache.o)+[PFInternalUtils(Reacha ..
发布时间:2021-12-30 16:39:17 移动开发

延迟初始化和保持循环

在使用惰性初始化器时,是否有可能存在保留周期? 在博客文章和许多其他地方[无主的自己]被看见 class Person {变量名:字符串懒惰 var 个性化Greeting:字符串 = {[无主的自己]在return "你好,\(self.name)!"}()初始化(名称:字符串){self.name = 姓名}} 我试过了 class Person {变量名:字符串懒惰 var 个性 ..