草庐IT

ios - 未在 ARC 应用程序上调用 Dealloc

我有一个UIViewController,它被推到容器Controller上,然后弹出,使用分配工具,我可以看到ViewController随后被销毁。但是,永远不会到达Controller的dealloc中的断点。有谁知道为什么不调用dealloc?ARC是否可以在不调用dealloc的情况下销毁对象?另外,我已经禁用了NSZombies(有些人说这会导致dealloc不触发)。编辑:Dealloc做的不多,只是打印到控制台,它永远不会被调用:-(void)dealloc{NSLog(@"取消分配...");}我不能发布容器Controller——它是专有的而且太复杂了。Deallo

ios - 为什么 ARC 在 popViewController 之后不释放内存

我在UINavigationController中推送和弹出ViewController。我正在跟踪我的应用程序的内存消耗。在推送新的viewController时,内存消耗逐渐增加,但是当我使用[self.navigationControllerpopViewControllerAnimated:NO];弹出相同的ViewController时内存消耗没有减少,而是保持不变。特定的viewController可以被用户多次推送和弹出,这会导致应用程序在RAM中的高内存消耗。我应该怎么做才能优化我的内存消耗? 最佳答案 当你关闭一个

ios - @属性定义与 ARC : Is strong default now?

刚刚在新的xcode4.3.1上运行ARC重构工具,我注意到我的(非原子,保留)属性被替换为(非原子)而不是像以前的xcode中的(非原子,强)。此更改后我的代码似乎运行良好,所以我假设它无论如何都默认为strong,有人知道为什么ARC转换器发生了变化吗? 最佳答案 是的,strong是Xcode4.3及更高版本中的默认值。它记录在LLVMdocs中在Apple的指南中usingproperties和workingwithARC. 关于ios-@属性定义与ARC:Isstrongdef

iphone - 使用 ARC 的优点和缺点是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion在iOS项目中使用新的自动引用计数(ARC)内存管理方式有哪些优点和缺点?使用iOS5.0SDK开发时可以选择不使用ARC吗?您是否建议为新项目使用ARC或手动引用计数(MRC)?使用ARC的应用程序能否在iOS5.0之前的操作系统版本上运行?

ios - 如何在 Xcode 4.2 中启用 ARC 项目范围

我有一个iOS应用程序,我想将其转换为使用ARC。我只想使用迁移工具,但在预览阶段它总是给我出错。我知道我可以在逐个文件的基础上使用-fobjc-arc编译器指令,但我想在整个项目上启用ARC,然后使用-fno-objc-arc关闭个别类。4.2的新项目可以默认使用ARC,所以一定要有个开关。谁能帮我把项目转换成ARC 最佳答案 "ARCisavailableinXcode4.2,currentlyinbeta,andonlywhencompilingwithClang(a.k.a."AppleLLVMcompiler").Thes

ios - KVO和ARC如何移除Observer

如何从ARC下的对象中删除观察者??我们是否只添加观察者而忘记删除它?如果我们不再手动管理内存,我们从哪里退出观察?例如,在ViewController上:[self.viewaddObserver:selfforKeyPath:@"self.frame"options:NSKeyValueObservingOptionNewcontext:nil];以前,我会在ViewController的dealloc方法中调用removeObserver:。 最佳答案 您仍然可以在ARC下实现-dealloc,这似乎是移除键值观察的合适位置。

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

我已经开始使用Xcode4.2开发我的第一个iOS应用程序,目标是使用“实用程序”模板(带有FlipsideViewController的模板)的iOS5.0。我读到,由于ARC是一个编译时功能,它也应该与iOS4兼容,所以我尝试将我的应用程序定位到4.3,并尝试编译它。当我这样做时,我收到此错误:FlipsideViewController.m:错误:自动引用计数问题:当前部署目标不支持自动__weak引用它引用了这一行:@synthesizedelegate=_delegate;该变量声明为:@property(weak,nonatomic)IBOutletiddelegate;我

ios - 没有 Storyboard和 ARC 的 Xcode

我已经下载了新的xcode-5并且刚刚开始使用它。我们可以直接创建包含Storyboard和ARC的应用程序,它不像早期版本那样要求选项。所以,我的问题是我们如何在没有ARC和Storyboard的情况下使用xcode5。我们必须手动删除Storyboard文件吗?还是有其他选择。 最佳答案 创建一个带有空应用程序的项目并添加任何ViewController(我在此处添加了TestViewController)-(BOOL)application:(UIApplication*)applicationdidFinishLaunchi

带有ARC的iOS APP没有泄漏但事件字节增加

非常感谢@HotLicks的帮助,他指出了我的sqlite3代码有什么问题。我修改了代码,按sqlite3增加的事件字节消失了。对于其他新的ios开发者也可能会遇到这个问题,我把原来的问题留在后面。我的新问题是:在instruments的每一代之间仍然有一些增加的活字节,但似乎所有的对象都是由iosSDK的代码组成的,而不是我的代码。那么,我是否应该不理会增长,而不必担心呢?@HotLicks说我操作UI的方式可能有问题,所以我详细描述一下:1)我在Xcode5中为ipad创建了一个主细节应用;2)将master嵌入到Tabbarcontroller中,并添加一个新的tab,因此mas

objective-c - Swift 与 ARC 之前的 Objective-C 不兼容吗?

我开始将Swift文件添加到一个不使用ARC的非常大的遗留Objective-C项目。当我编译项目时,我会收到针对ProjectName-Swift.h桥头文件中发出的每个属性的警告:未指定“分配”、“保留”或“复制”属性-假定为“分配”默认属性“assign”不适用于非GC对象看起来Swift正在发布基于ARC的Objective-C代码。这是这个特定版本的Swift中的限制/错误,还是Swift设计为仅适用于ARC代码? 最佳答案 您可以混合使用ARC和非ARC代码。所有ARC编译代码所做的就是自动为用户管理其内存。您应该为项目