草庐IT

objc_overrelease_during_dealloc_e

全部标签

iphone - 我需要在 ARC 中使用 dealloc 方法吗?

所以,我有课:@interfaceController:NSObject{UILabel*fileDescription;}@property(strong,nonatomic)UILabel*fileDescription;我是否需要在属性fileDescription等于nil的情况下使用方法dealloc?例如:-(void)dealloc{fileDescription=nil;}如果不是,谁将关闭fileDescription使用的内存? 最佳答案 通常您不需要提供子类dealloc方法,因为ARC管理实例变量的生命周期。

objective-c - 在 ObjC 实现文件中声明的实例变量

我在观看WWDCARC介绍视频时,当一些Apple工程师谈到Stack示例时,我看到了以前在ObjC中从未见过的东西。以下代码用于ARC的堆栈示例:@implementationStack{//instancevariabledeclaredinimplementationcontextNSMutableArray*_array;}-(id)init{if(self=[superinit])_array=[NSMutableArrayarray];returnself;}-(void)push:(id)x{[_arrayaddObject:x];}-(id)pop{idx=[_arra

objective-c - 通过 ObjC 类别覆盖方法并调用默认实现?

使用类别时,您可以使用自己的方法覆盖实现方法,如下所示://BaseClass@interfaceClassA:NSObject-(NSString*)myMethod;@end@implementationClassA-(NSString*)myMethod{return@"A";}@end//Category@interfaceClassA(CategoryB)-(NSString*)myMethod;@end@implementationClassA(CategoryB)-(NSString*)myMethod{return@"B";}@end在包含类别后调用方法“myMetho

objective-c - iOS 8 Mapkit Objc 无法获取用户位置

我正在使用Obj-CNOTSWIFT在iOS8中使用MapKit。我无法获取设置为0.00、0.00的设备位置,并且出现错误:TryingtostartMapKitlocationupdateswithoutpromptingforlocationauthorization.Mustcall-[CLLocationManagerrequestWhenInUseAuthorization]or-[CLLocationManagerrequestAlwaysAuthorization]first.我已经实现了:(我一次只尝试了一个,没有运气)if(IS_OS_8_OR_LATER){[se

objective-c - 如何在对象内使用 objc_setAssociatedObject/objc_getAssociatedObject?

如果我在类别实现中使用objc_setAssociatedObject/objc_getAssociatedObject将模拟实例变量存储在setter方法中,我将如何访问getter方法中的键,因为在setter方法中声明的任何变量都将超出getter的范围方法?编辑:澄清一下,如果我要使用以下模式,我应该在哪里声明STRING_KEY以便我可以在setter和getter方法中使用它。@interfaceNSView(simulateVar)-(void)setSimualtedString:(NSString*)myString;-(NSString*)simulatedStri

iphone - 什么是 objc_setAssociatedObject() 以及在什么情况下应该使用它?

在我接手的一个项目中,原作者选择使用objc_setAssociatedObject(),我不是100%清楚它的作用或他们决定使用它的原因。我决定查一下,不幸的是,文档并没有很好地描述它的用途。objc_setAssociatedObject使用给定键和关联策略为给定对象设置关联值。voidobjc_setAssociatedObject(idobject,void*key,idvalue,objc_AssociationPolicy策略)参数对象关联的源对象。键关联的key。值与对象的键键关联的值。传递nil以清除现有关联。政策协会的政策。有关可能的值,请参阅“关联对象行为”。那么这

objective-c - 构建失败,出现 : ld: duplicate symbol _OBJC_CLASS_$_Algebra5FirstViewController

我通过iPhone模拟器运行我的应用程序时突然收到此错误:clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation):ld:duplicatesymbol_OBJC_CLASS_$_Algebra5FirstViewControllerin.../Algebra5-anwcuftojtxtgkfootneeeqhwztj/Build/Intermediates/Algebra5.build/Debug-iphonesimulator/Algebra5.build/Objects-normal/i386/Exerc

objective-c - 如何向 objc_exception_throw 添加断点?

这是布拉德·拉森对此的回答SO问题如果你添加两个断点,你应该能够调试这些异常。为此,请转到运行|显示|断点并创建两个全局断点(我在全局范围内执行它们,因为它们在我的所有应用程序中都非常有用)。第一个应命名为“objc_exception_throw”,其位置应为“libobjc.A.dylib”。第二个应该是“-[NSExceptionraise]”,它的位置应该是“CoreFoundation”。现在,如果您在启用断点的情况下开始调试应用程序,它应该会在抛出这些异常时中断。然后,您应该能够在调试器中看到导致异常的事件链。现在在这个答案中我想问我如何添加提到的位置???

objective-c - ViewController 响应选择器 : message sent to deallocated instance (CRASH)

好的,这就是交易,我讨厌提出有关我的调试和崩溃的问题。因为我通常自己处理它们,但我只是无法解决这个问题,即使在已经查看了多个问题之后也是如此。好的,这就是问题所在,我发现我的应用程序随机打开和关闭,并出现此堆栈跟踪:***-[ViewControllerrespondsToSelector:]:messagesenttodeallocatedinstance0x1e5d2ef0ViewController的位置可能会有所不同,有时我的代码崩溃的位置与特定的ViewController有NO相关性并且不属于或调用它。另外,为了获得控制台跟踪,我启用了Zombies,否则我根本不会得到控制

objective-c - 使用 ARC 时是否在 dealloc 中将属性设置为 nil?

我正在尝试学习iOS5中的自动引用计数。现在这个问题的第一部分应该很简单:我确实不需要写明确的吗?使用ARC时我的dealloc中的release-property语句?其他话,以下是真的NOT需要明确解除分配?@interfaceMyClass:NSObject@property(strong,nonatomic)NSObject*myProperty;@end@implementationMyClass@synthesizemyProperty;@end我的下一个更重要的问题来自TransitioningtoARCReleaseNotes中的一行。文件:Youdonothaveto