automatic-ref-counting相关内容

将uiImage设置为零不会使用ARC释放内存(&;t;t

我有一个滚动视图,可以在页面滚动时显示不同的图像,就像PhotoScroller一样。我用的是ARC。当有人滚动到另一个页面时,我将当前未显示的UIImageView的图像属性设置为零,以避免仍在发生的内存崩溃。然后,当用户滚动到新页面时,该页面的图像被设置为UIImageView的图像属性,以及它之前和之后的页面(为了流畅查看)。页面的UIImage都保存在一个数组中。然而,当我滚动页面时,内存 ..

Objective-C 中的自动引用计数不能防止或最小化什么样的泄漏?

在 Mac 和 iOS 平台中,内存泄漏通常是由未释放的指针引起的.传统上,检查您的分配、复制和保留以确保每个都有相应的发布消息一直是最重要的. Xcode 4.2 附带的工具链通过最新版本的 LLVM 编译器引入了自动引用计数 (ARC),完全消除了这一点通过让编译器为你管理你的东西来解决问题.这很酷,它确实减少了许多不必要的、平凡的开发时间,并防止了许多粗心的内存泄漏,这些泄漏很容易通过 ..

为什么 ARC 仍然需要 @autoreleasepool?

在大多数情况下,使用 ARC(自动引用计数),我们根本不需要考虑使用 Objective-C 对象的内存管理.不再允许创建 NSAutoreleasePool,但是有一个新的语法: @autoreleasepool {…} 我的问题是,当我不应该手动释放/自动释放时,为什么我还需要这个? 编辑:简明扼要地总结一下我从所有回答和评论中得到的: 新语法: @autorelease ..

更新为 ARC 错误

我正在尝试将项目更新为 ARC.虽然我看过一些关于更新到 ARC 的帖子,但我见过的帖子都没有处理这个特定问题.我有多个错误,大多数人说: ARC 问题指向没有明确所有权的非常量类型“id"的指针 指向直线 CCARRAY_FOREACH(children_, item) 在 CCMenu.m 类中.请帮忙. 更新: 重新启动 Xcode 后,上述问题在 处不再发现 CCA ..
发布时间:2022-01-21 17:59:27 移动开发

Cocos2d,iOS:从缓存中删除精灵的正确方法是什么?

我得到了一个不是单例实例的 GameScene 类.因此,每次用户选择新关卡时,我都会分配和取消分配它,并将“静态"/“共享"数据保存在不同的单例类(例如 GameManager)中. 我正在使用 ARC.我想了解在内存管理的角度下我的方法是否正确.换句话说,在清理时调用“removeUnusedSpriteFrames"就足够了吗?这会删除 game-art-forLevelOne-hd. ..

场景多的 Cocos2D 项目没有正确释放内存

我遇到了一个很大的问题,我不太明白为什么会发生.是这样的: 在 Cocos2D 中有一个很棒的项目,包含 10 个场景.每个场景都是一本书的一页,上面有巨大的精灵.它使用 Kobold2D 1.0.2 实现. 每个页面都有一个单例类中的公共对象,通过 LayerColor 放置一个公共菜单. 精灵是 PVR.CCZ RGBA4444 和 iPad 内存中的 TexturePacker每个 ..

cocos2d 支持 ARC 吗?

我正在使用 Xcode 4.2 并为 iphone(从 iOS 3.0 - 5.0)构建游戏.cocos2d 支持 ARC 吗?转换以前版本写的代码需要做哪些修改? 如果我对变量使用强弱关键字并将编译器设置为 LLVM GCC 4.2,结果会是什么?是否有必要将编译器更改为 3.0 以支持 ARC? 解决方案 Cocos2d v1.1和v2.0兼容ARC.但是,cocos2d 代码本 ..
发布时间:2022-01-21 17:07:49 移动开发

在 UINavigationController 上推送许多视图控制器时出现内存问题

我正在为 iPad 制作一本交互式书籍,并且正在使用 UINavigationController 来实现页面和下一个页面之间的导航.当用户翻页时,下一页被推送到导航堆栈的顶部. 我现在进入应用程序的第 15 页,当我尝试从第 14 页转到第 15 页时,应用程序崩溃了.控制台中没有错误消息,设备的崩溃日志中也没有任何内容. 情节提要中每个视图控制器的场景都有 UIImageViews ..
发布时间:2022-01-20 16:22:58 移动开发

ARC 中多个 UIImageView 上的 UIView 动画

我的应用中有一个动画,它会增长 UIImageView 然后缩小它(实际上是两个动画).在整个应用程序中,这可能发生在几个不同的 UIImageViews 上.我找到了一种非常有效的方法,但它现在似乎与自动引用计数不兼容.这是我的代码: [UIView beginAnimations:@"growImage" context:imageName];[UIView setAnimationDura ..

UIWebView 占用大量内存

在我的应用程序中,当我使用任何网站 url 加载 UIWebView 时,内存从 30mb 跳到大约 140mb.我正在使用 ARC 当关闭包含 UIWebView 的 UIWebViewController[Viewcontroller] 时,它不会释放内存.任何人都可以帮助我如何解决这个内存问题,还请在 ARC 中为我提供内存最佳实践的指针 用于加载网页:- NSURL *nsur ..
发布时间:2022-01-19 22:07:54 移动开发

iOS 4 真的支持 ARC 吗?iOS 4.2 SDK 在链接时缺少与 ARC 相关的符号

自从 ARC 首次宣布它是一个编译时的东西并且将与 iOS 4 向后兼容以来,我已经阅读和听说过.我已经使用 Xcode 4.2 的自动重构成功地将我的项目重构为 ARC,以及何时针对 iOS 5.0 SDK 编译,它工作正常.但是,如果我尝试针对我的 iOS 4.2 SDK 进行编译,它会在链接时失败,缺少以下符号: _objc_retainAutoreleaseReturnValue ..
发布时间:2022-01-19 20:17:32 移动开发

在 ARC 下将代表设置为零?

我正在使用 ARC 编写 iOS 应用程序并针对 iOS 5+. 假设我编写了一个具有委托属性的自定义视图对象.在声明delegate属性时,我将其设为弱引用以避免retain循环,这样当实际的delegate对象(控制器)被销毁时,我的自定义视图也将被销毁,如下: @interface MyCustomView : UIView@property(非原子,弱)id ..
发布时间:2022-01-18 12:11:45 移动开发

使用 ARC 声明委托属性的推荐方法

我曾经将所有委托属性声明为 @property (assign) id代表; 我的印象是所有的赋值属性现在都应该是弱指针,这是正确的吗?如果我尝试声明为: @property (weak) id代表; 尝试@synthesize 时出现错误(不支持自动生成的弱属性). 在这种情况下,最佳做法是什么? 解决方案 对于面向 iO ..

我可以构建一个 ARC 框架并在非 ARC 项目中使用它吗?

我认为标题很好地解释了我的问题,我目前正在开发一个满足我个人需求的小型框架,并考虑使用 ARC 构建它(如果可能的话?),并将其用于旧项目中是在 ARC 之前建造的吗? 解决方案 是的,有一个警告:如果您将 iOS 4.x 作为部署目标,则需要一个补充库来处理旧版本上的 ARC 编译代码运行.对于使用 ARC 构建的应用程序,它与应用程序一起打包.如果您在非 ARC 应用程序中使用 ARC ..
发布时间:2022-01-16 19:54:20 移动开发