草庐IT

ios - 使用关联引用在 Objective-C 类别中伪造实例变量 - 错误 "Use of undeclared identifier ' OBJC_ASSOCIATION_RETAIN”

我正在尝试使用objc_setAssociatedObject创建类别中的“假”实例变量,如post中所述.但是,我在iOS6.1中使用ARC时遇到以下错误:Useofundeclaredidentifier'OBJC_ASSOCIATION_RETAINforthefollowingcodesnippet:-(void)setStyleName:(NSString*)styleName{objc_setAssociatedObject(self,kDHStyleKey,styleName,OBJC_ASSOCIATION_RETAIN);}iOS6.1有什么变化吗?我错过了什么?

iphone - 什么时候用 self 访问属性,什么时候不访问?

谁能解释设置someObject=someOtherObject;和self.someObject=someOtherObject;之间的区别,如果someObject是用@property创建的类属性(非原子,保留)SomeTypesomeObject;为了澄清我有类似的东西:@interfaceSomeClass:NSObject{SomeType*someObject;}@property(nonatomic,retain)SomeType*someObject;@end我注意到,当我在没有self的情况下使用该属性时,有时会出现EXC_BADACCESS,这看起来很随机。当我使

iphone - ViewController 类型名称在一个类中无法识别,但在另一个类中却可以识别?

当我尝试构建我的项目时,我在XCode中遇到构建语义错误。我有3个NSOperation类设置来从互联网下载信息,处理它,并将它发送到父ViewController,一个ViewController的实例。这是worker类(Class)的代码:#import#import"ViewController.h"@interfaceImageGetter:NSOperation@property(nonatomic)intsid;@property(nonatomic,retain)ViewController*pvc;@end这是不工作的代码:#import#import"ViewCon

ios - 优化:什么是 sidetable_release() 和 sidetable_retain()?

在我的OpenGL循环中,Instruments在我的粒子处理循环中显示总共14%的处理器时间转到objc_object::sidetable_release(bool)和objc_object:sidetable_retain()。这很重要,因为循环在iPhone5上使用了100%的CPU。我想知道是否有办法减少这种情况。我不知道是什么原因造成的,而且我在很多方法中都看不到这些。我认为它们与快速枚举对象数组有关。下面是有问题的方法:-(void)updateWithTime:(ccTime)dtsceneHeightAboveHorizon:(CGFloat)yMax{_elapse

iphone - strong(在 LLVM 中)和 retain(在 GCC 中)有什么区别?

strong(在LLVM编译器中)和retain(在GCC编译器中)有什么区别? 最佳答案 strong是iOS5自动引用计数(ARC)中的一项新功能,其行为与iOS4中的retain相同。ReferencedArticle.此外,请查看其他SO问题:@propertydefinitionswithARC:strongorretain? 关于iphone-strong(在LLVM中)和retain(在GCC中)有什么区别?,我们在StackOverflow上找到一个类似的问题:

ios - 如何将Manual Retain-Release代码自动转换为ARC?

我为iOS4编写了数千行代码。代码库包含许多对retain和release的调用,当项目更新到iOS5时会导致错误和ARC。有没有办法自动将手动保留释放(MRR)代码转换为自动引用计数(ARC)? 最佳答案 来自Xcode4.2releasenotes:Toinitiatetheprocess,enableContinuebuildingaftererrorsintheGeneralPreferencespane,thenchooseEdit>Refactor>ConverttoObjective-CARC.Thetargetsth

ios - objc_retain EXC_BAD_ACCESS

我在使用当前的iOS5应用程序在iOS6上进行测试时遇到了一些错误。我们遇到过在内部使用block而不是属性的无害方法的方法返回锁定。问题是调用方法有效,方法中的每一行代码(包括使用代码的block)也是如此我尝试在调用block之前使用[blockcopy],但绝对没有任何变化。 最佳答案 原来我的代码的函数定义是在内部接口(interface)中声明的,没有返回类型。这里有一些图形来说明这个问题。初始错误堆栈轨道有问题的方法(与self隔离以确定问题的确切位置)函数实现(调用并返回)私有(private)接口(interface

iOS 和 Objective-C : most of CPU time is spent in [NSObject release] and [NSObject retain] but class method is not doing any memory operations

图像处理应用程序在模拟器上运行速度很快,但在真实设备(iPhone4GS)上真的很慢。在“instruments”下运行应用程序时,我看到以下调用树:请注意,据报告,红色圆圈内的调用几乎占用了该方法的所有CPU时间。问题中的方法是类方法(不是实例方法),代码如下:@implementationLine2F+(CGFloat)signTested:(Point2F*)testedp1:(Point2F*)p1p2:(Point2F*)p2{return[Line2FsignTestedX:tested.xtestedY:tested.yp1x:p1.xp1y:p1.yp2x:p2.xp2

ios - Swift : [MyApp. MyClass retain]:发送到释放实例的消息

我的应用程序发生以下崩溃。[MyApp.MyClassretain]老实说,我根本不知道该如何处理这个问题。这只发生在我的swift类(class)中。我需要知道为什么会发生这种情况以及解决此问题的一般方法是什么。这是我的一般swift代码(还有更多内容,但我可能不需要全部发布。classMyClass:NSObject,ApiDelegate,UIAlertViewDelegate{varapiClient:Api?funcinitMyClass(authKey:NSString?){apiClient=Api(authKey:authKey,debugMode:false)apiC

swift - 为什么调用UIDynamicBehavior的action closure后会出现memory leak/retain cycle?

此处代码的想法是在View(self.mv)被UIDynamicAnimator设置为动画离开屏幕时删除它。下面的代码基于MattNeuburg着的iOS12编程一书第4章中的示例。作者说行为和View(代码中的self.mv)都不会被取消分配。但他没有详细说明这一点。我的问题是:谁在self.anim.removeAllBehaviors()之后仍然保留行为?谁还保留着self.mv?我使用了Instruments,但我不太了解输出结果。这是否意味着动画师保留了它?但是只有绿色的复选标记。通过XCode中的“DebugMemoryGraph”工具,我看到UIGravityBehavi