草庐IT

arc-lisp

全部标签

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*)

ios - Xcode 4.4,使用 ARC 为 iOS 4.2 构建应用程序

Xcode4.4、MountainLion、llvm4.0编译器。我构建了我的应用程序,它可以在ios5、ios6设备上运行,但是在带有ios4.2的iphone3g上我有这样的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_objc_storeStrongReferencedfrom:/var/mobile/Applications/68B78A19-71E6-4BDA-B997-B7DED4D02429/iGuides.app/iGuidesExpectedin:/usr/lib/libobjc.A.dylibdyld:Symboln

Objective-C ARC __weak 变量引用触发警告 "__weak attribute cannot be specified on an automatic variable"

我有一个应用程序(仅限ios5),它在方法内声明了一个在block内使用的弱变量,以引用ViewController的实例。QRCodeViewController*__weakweakSelf=self;问题是编译器显示警告说:__weakattributecannotbespecifiedonanautomaticvariable在那个应用程序中我使用了很多弱引用而且我从来没有看到这样的警告,与其他类的唯一区别是这个类是在.mm文件中实现的,因为它使用c++对象并且项目可以如果我将其保留为.m,则编译。我必须说代码似乎工作正常。有什么建议吗? 最佳答案

ios - 圆弧 : Setting compiler flags to -fno-objc-arc and build errors

在关于为特定类禁用ARC编译器机制的stackoverflow主题之后,我将-fno-objc-arc参数添加到CompileSources部分(TARGETS项目中的BuilPhases选项卡)下的CompilerFlags列。即使设置已经过验证,我也无法构建我的应用程序,因为编译器说retain、release等不能在ARC下使用。如何解决上述问题?提前谢谢你。 最佳答案 您是否使用迁移工具执行迁移?您是否将编译器标志添加到所有具有释放/保留的文件?我写了关于ARCmigrationonmyblog在这里。

iphone - ARC 语义问题 : No visible @interface for Class declares the selector

非常基本的东西,但我无法解决问题所在。在我的项目中,我有一个名为“TheFeedStore”的类,它具有以下两种方法:-(BOOL)hasItemBeenRead:(RSSItem*)item{............}-(void)markItemAsRead:(RSSItem*)item{.........}我正在使用以下类方法,以便其他类可以使用它访问这些方法:+(TheFeedStore*)sharedStore{staticTheFeedStore*feedStore=nil;if(!feedStore){feedStore=[[TheFeedStorealloc]init]

ios - 'unsigned long ' UIUserNotificationSettings *' 的隐式转换不允许使用 arc

iOS8中的推送通知不起作用。错误显示:implicitconversionof'unsignedlong'UIUserNotificationSettings*'isdisallowedwitharc代码:-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{[applicationregisterUserNotificationSettings:(UIUserNotificationTypeSound|UIUserNotific

iphone - 在 iOS 中,使用 ARC,是否足以将所有 ivars 和属性设置为 nil,并在 viewDidUnload 中释放上下文、图像、颜色空间?

对于使用ARC的iOS应用程序,我们通常会在viewDidUnload中发布这些应用程序吗?将所有实例变量设置为nil将所有属性设置为nil使用CGContextRelease释放任何上下文,使用CGImageRelease释放CGImage,使用CGColorSpaceRelease释放颜色空间(释放任何非对象)NSSet元素的NSMutableArray无需特别注意:只需将NSMutableArray和NSSet的引用设置为nil,每个元素将自动释放。这些会处理ARC下的大部分内存释放吗?还有其他需要发布的项目吗? 最佳答案 很