草庐IT

geometric-arc

全部标签

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

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

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 - 在 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 - 如何在ARC中集成ASIHTTPRequest

arc模式下集成ASIHTTPRequest库报错较多。有没有合适的方法来集成非弧库。 最佳答案 如果您的项目使用的是ARC,请单击项目名称->选择目标->构建阶段->编译器源。为所有ASIHTTPRequest源文件设置编译器标志-fno-objc-arc。 关于ios-如何在ARC中集成ASIHTTPRequest,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1793811

ios - 如何从 XCode 中删除 ARC

我已经在XCode4.2中创建了一个选中ARC的项目。问题是我必须下载并添加ASIHttpRequest文件。当我尝试编译时,这会产生一大堆错误。有什么方法可以解决这个问题(除了重新创建一个项目)吗? 最佳答案 单击左侧导航View中的项目名称,转到Targets->BuildPhases并将-fno-objc-arc添加到任何相关的“compilerflags”文件。 关于ios-如何从XCode中删除ARC,我们在StackOverflow上找到一个类似的问题:

objective-c - 在 Xcode 4.2 中使用 Objective-C ARC 时,如何防止对象被释放?

ETA:有关我通过分析应用程序获得的更多信息,请参阅底部。我有一个iPhone应用程序,我刚刚转换为使用ARC,现在由于僵尸对象,我遇到了几个错误。在我切换之前,我手动保留了它们,一切都很好。我不明白为什么ARC不保留它们。对象被声明为强属性,并使用点表示法引用。这发生在好几个地方,所以我想我一定对某个地方的ARC/内存管理有根本的误解。这是一个特别令人沮丧的例子。我有一个包含3个对象的NSMutableArray。这些对象中的每一个都有一个也是NSMutableArray的属性,在这种情况下,它始终只有一个对象。最后,该对象具有被释放的属性。令人沮丧的原因是它只发生在原始数组中的第三

ios - 对于我不合成的属性,我是否需要 ARC 关键字?

我有一个我不合成的属性,而是我自己创建了一个getter和setter。因此,我认为ARC关键字(强或弱)没有任何意义,因此我将它们删除。这在Xcode4.3上工作正常,但是当我的同事在XCode4.2上打开它们时,编译器提示没有强/弱关键字,所以我指示他毫无意义地再次输入关键字。哪个是正确的(有或没有关键字)?要清楚:我有一个像这样的属性@property(nonatomic)NSString*foo并且在.m文件中我实现了-(NSString*)foo和-(void)setFoo:(NSString*)foo并且不包含@synthesizefoo。另一个相关细节是没有相应的iVar

ios - ARC 不允许将非 Objective-C 指针类型 void* 隐式转换为 NSString*__strong*

迁移到ARC时出现上述错误。这是代码:staticNSString*cashBalanceKeyPath=@"test";...[xxxforKeyPath:cashBalanceKeyPathoptions:NSKeyValueObservingOptionNewcontext:&cashBalanceKeyPath];...-(void)observeValueForKeyPath:(NSString*)keyPathofObject:(id)objectchange:(NSDictionary*)changecontext:(void*)context{if(&cashBalan

iphone - 释放非 ARC 项目中的对象,对象在 ARC 库中声明

嗯,我正在做一个非ARC项目,但使用的是使用ARC编写的PhilippKyeck'ssocketiolibrary。我正在使用this教程合并非ARC项目和ARC库中解释的方法。在我的ViewController文件中,我正在使用初始化套接字SockIO*chatSockIO=[[SocketIOalloc]initWithDelegate:self];当我需要断开连接时,我会打电话[chatSockIOdisconnect];这会触发socketIODidDisconnect委托(delegate)方法。-(void)socketIODidDisconnect:(SocketIO*)