草庐IT

objc_overrelease_during_dealloc_e

全部标签

ios - objc_setAssociatedObject 和 objc_getAssociatedObject 有什么问题吗?

我正在研究向所有UIView实例添加属性(在本例中为整数)的方法,无论它们是否是子类。在类别中使用objc_setAssociatedObject()和objc_getAssociatedObject()是否是Apple认可的适当方式?我听说有人担心这会构成“运行时黑客”,并可能导致难以追踪和调试的问题。还有其他人见过这种类型的问题吗?有没有更好的方法可以在不进行子类化的情况下向所有UIView实例添加整数属性?更新:我不能只使用tag,因为这需要在已经使用tag的代码库中用于其他事物。相信我,如果我可以为此使用tag,我会的! 最佳答案

objective-c - ObjC block 和 openssl C 回调

有一个简单的一次性任务需要一个进度条。OpenSSL有一个有用的可以为此使用的回调:rsa=RSA_generate_key(bits,RSA_F4,progressCallback,NULL);与staticvoidcallback(intp,intn,void*arg){..stuff但是我想毫不费力地从ObjectiveC中调用它:MBProgressHUD*hud=[MBProgressHUDshowHUDAddedTo:self.viewanimated:YES];hud.mode=MBProgressHUDModeAnnularDeterminate;hud.labelTe

ios - 付款队列 : updatedTransactions: not called during restore

在极少数情况下,我的某些用户似乎无法购买非消耗品。当他们尝试购买时,它不会激活“高级”,并且当他们从当前安装或全新安装中恢复时,paymentQueue:updatedTransactions:不会被调用。我专门添加了很多日志记录来尝试确定恢复未遵循预期流程的原因。在恢复失败期间,不会触发任何“RESTORE”类别事件。供引用[selfsuccess];仅显示内容View,[selffail:]向用户显示错误消息。同时[[SKPaymentQueuedefaultQueue]addTransactionObserver:self];在viewDidLoad中被调用,而[[SKPayme

ios - KCOrderedAccessorFix objc_msgSend too many arguments to function call, expected 0, 有 2

在Xcode6中,KCOrderedAccessorFix在以下行中产生错误:NSMutableOrderedSet*primitive=objc_msgSend(_s,fastPrimitiveGetter)我该如何解决?谢谢, 最佳答案 更改每个objc_msgSend方法调用NSMutableOrderedSet*primitive=objc_msgSend(_s,fastPrimitiveGetter);到NSMutableOrderedSet*primitive=((id(*)(id,SEL))objc_msgSend)(

ios - 在 iOS 中使用 ARC 对 dealloc 进行单元测试

我想为dealloc方法编写一个iOS单元测试,该方法(基本上)将对象作为另一个对象的委托(delegate)删除。-(void)dealloc{someObject.delegate=nil;}但是我不能在使用ARC时直接调用dealloc。编写此单元测试的最佳方式是什么? 最佳答案 将实例分配给弱变量:MyType*__weakzzz=[[MyTypealloc]init];实例将立即释放。或者,youcandisableARConyourunittestfile并调用dealloc。

objective-c - 如何静态转储 Cocoa App 中调用的所有 ObjC 方法?

假设我有一个基于Cocoa的Mac或iOS应用程序。我想对我的应用程序的源代码或我的应用程序的二进制文件运行静态分析器来检索所有Objective-C方法的列表在其中调用。有没有工具可以做到这一点?几点:我正在寻找静态解决方案。我不是在寻找dynamicsolution.可以针对二进制或源代码运行的东西是可以接受的。理想情况下,输出只是一个庞大的Objective-C方法去重列表,例如:…-[MyClassfoo]…+[NSMutableStringstringWithCapacity:]…-[NSStringlength]…(如果它没有去重复那很好)如果存在其他类型的符号(C函数、静

ios - 关闭 Popover,[UIPopoverController dealloc] 在 popover 仍然可见时到达

我有一个UIPopoverController存储在我的ViewController的一个strong属性中。当用户在弹出窗口可见时旋转iPad时,我关闭弹出窗口并将我的属性设置为nil。if(self.popover!=nil){[self.popoverdismissPopoverAnimated:NO];self.popover.delegate=nil;self.popover=nil;}当代码到达self.popover=nil时,ARC尝试释放UIPopoverController,但它崩溃了,因为它应该仍然可见。我应该如何在不崩溃的情况下关闭和清除弹出窗口?

objective-c - 我们可以覆盖 Objective-C 中的 alloc 和 dealloc 吗?

我知道很少需要重写alloc或dealloc方法,但如果需要,在iPhone编程中是否可行? 最佳答案 你可以而且确实应该(如果使用手动内存管理)覆盖dealloc以释放你持有的任何资源(不要忘记在完成时调用[superdealloc]).覆盖alloc是可能的,但正如您所说,很少需要。 关于objective-c-我们可以覆盖Objective-C中的alloc和dealloc吗?,我们在StackOverflow上找到一个类似的问题: https://st

ios - Xcode 8,iOS 8 模拟器崩溃 : "dyld: lazy symbol binding failed: Symbol not found: _objc_unsafeClaimAutoreleasedReturnValue"

更新到Xcode8,在iOS8模拟器中运行我的应用程序并崩溃,尽管iOS9和iOS10没问题。"dyld:lazysymbolbindingfailed:Symbolnotfound:_objc_unsafeClaimAutoreleasedReturnValueReferencedfrom:**Expectedin:/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS8.1.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libobjc.A.dylibdyld:Symbolno

iphone - 将对象设置为 nil 与在 dealloc 中向其发送释放消息有什么区别

我有对象:MyClass*obj=[[MyClassalloc]init];有什么区别:[objrelease];//Onlyobjownthisobject.和:obj=nil;当我设置obj=nil时,iOS会释放obj吗?我有一个指针,有时我将它指向一个对象,有时不指向它。所以,当我想释放一个指针时,我必须检查它是否为零? 最佳答案 这个十年前的回答,现在仅具有历史意义。今天,您必须使用ARC。干杯非常简短的回答是不要只是将它设置为零。你必须释放它。将它设置为nil与释放它没有任何关系。你必须释放它。但是值得记住的是如果它是一