草庐IT

fno-objc-arc

全部标签

ios - 在 ARC 下安全地将对象作为不透明的上下文参数传递

在手动内存管理下,我经常使用这种模式:NSString*myStr=/*somelocalobject*/[UIViewbeginAnimation:@"foo"context:(void*)[myStrretain]];然后,稍后异步地:-(void)animationDidStop:(NSString*)animfinished:(NSNumber*)numcontext:(void*)context{NSString*contextStr=(NSString*)context;//...[contextStrrelease];}即我手动管理用作不透明上下文的对象的生命周期。(这适

objective-c - 什么时候在 iOS 的 ARC 中发布强大的属性?

我有一个关于iOS中的ARC的快速问题。(抱歉,我问了很多此类问题,但我对内存管理感到非常困惑。)。重要的是要注意,我从未使用过旧的内存维护系统(retain、release、assign...等),所以我不我真的不知道这些术语是什么意思。现在我很困惑我必须做些什么来确保正确释放强大的属性。例如,假设我正在制作一个学校应用程序,并且我的School对象包含对5个不同的Child对象(不在数组中)的强属性引用。每个Child对象都有一个指向Book对象的强指针(属性)。如果我从我的学校中删除了一个Child对象(比如通过使其属性=nil,或者通过更改我的属性以指向一个新对象),它的Boo

objective-c - 非常奇怪的 ARC 内存泄漏

下午好我正在对我即将发布的iOS应用程序进行一些Instruments测试,但我注意到一些非常奇怪的内存泄漏,这似乎来自系统库。当我运行Instruments时,我得到了这个泄漏:从我的角度来看,这非常奇怪!我去了这些泄漏的调用树,它们似乎都是深度C++系统调用。更让我困惑的是,这个项目启用了ARC,我通过分析器运行它,没有出现任何问题。更奇怪的是,这不会发生在模拟器上,也不会发生在我真正的iPad上,但在我的iPhone上会发生这个问题。当我选中“仅显示Obj-C”和“隐藏系统库”时,调用跟踪消失,这让我相信我的代码不对泄漏负责。为什么会发生这种情况,我该如何解决?谢谢你们。

ios - socket.IO-objc 与 AZSocketIO

来自listofSocket.IOimplementationsinotherlanguages,我们可以看到有两个用Objective-C写的备选方案。我的问题与这两个库各自的优缺点有关。socket.IO-objc看起来更完整并且有更好的文档,但我也想知道有哪些优点AZSocketIO提供考虑这些优势是否足够重要,让我的项目选择一个或另一个。如果有人使用过其中之一,可以给我一些建议,我将不胜感激。谢谢! 最佳答案 AZSocketIO有CocoaPods。这对我来说是一场胜利。 关于

iphone - 从文档目录中的文件夹创建 ZIP 文件 - Objective C (ARC)

我有一个使用ARC开发的iPhone应用程序。我的文档目录中有一个文件夹,其中包含大量图像,我需要将其压缩并通过电子邮件发送。我的项目使用ARC。有没有人有任何示例代码/指向对我有帮助的资源的链接?我一直在网上四处搜寻,发现与ARC不兼容-即使它声称是。 最佳答案 从此链接下载并拖动Objective-Zip、MiniZip和ZLib到您的项目中http://code.google.com/p/objective-zip/downloads/list(目标压缩)。导入文件:压缩文件.h,ZipException.h,FileInZi

ios - ObjC : memory usage of delegate vs block?

我正在比较Objective-C中委托(delegate)与block的内存占用,以解决相同的问题。比如有一个worker类,做一些工作://delegate@protocolWorkerDelegate:NSObject-(void)workHasBeenDone;@end//blocktypedefvoid(^WorkerBlock)();@interfaceWorker:NSObject@property(nonatomic,weak)iddelegate;@property(nonatomic,copy)WorkerBlockblock;-(void)doTheWork;@en

ios - 在 ARC 下,卸载 viewcontroller 时需要为所有强成员设置 nil 吗?那是必须的吗?

假设我有一个这样的ViewController:@interfaceControllerA:viewcontroller{NSString*__stronga;}@end在我设置的viewDidLoad函数中a=[[NSSStringalloc]init];在另一个ControllerB中,{ControllerA*controllerA=[[ControllerAalloc]init];}controllerA的成员会被释放吗? 最佳答案 是的,a指向的字符串会在controllerA释放时释放。您不需要自己将其设置为nil。Tr

ios - 转换为 ARC 时 NSMakeCollectable 出现问题

我正在尝试将我的代码转换为ARC,但ASIRequest库中的NSMakeCollectable有问题。-(NSString*)encodeURL:(NSString*)string{NSString*newString=NSMakeCollectable([(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)string,NULL,CFSTR(":/?#[]@!$&'()*+,;=\"%{}|\\^~`"),CFStringConvertNSStringEncoding

ios - ObjC Plist 文件读取速度比 JSON 快?

我做过这个测试项目https://github.com/danielpetroianu/FileDeserializeBenchmarking看看我从应用程序包中读取文件并将其反序列化的最快方法是什么。我惊讶地发现Plist文件的读取速度比JSON快。由于JSON文件较小,我预计它会更快。Xcode在构建时对Plist文件做了一些优化吗?我是否做错了什么导致JSON反序列化花费更多时间? 最佳答案 SinceJSONfilesaresmallerassize,Iexpectedittobefaster.您没有理由相信这一点。有许多因

iphone - 架构 i386 : "_OBJC_IVAR_$_UIViewController._view", 的 undefined symbol 引用自:

我一直在浏览关于这个错误的无数帖子:Undefinedsymbolsforarchitecturei386:"_OBJC_IVAR_$_UIViewController._view",referencedfrom:-[ViewControllerviewDidLoad]inViewController.old:symbol(s)notfoundforarchitecturei386clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)我已经检查了.m文件和链接库并复制了捆绑文件。我正在使用xcode4.6.2