ios – ARC语义问题“仅在归档时命名为’setRotation’的多个方法”

ios – ARC语义问题“仅在归档时命名为’setRotation’的多个方法”,第1张

概述我在cocos2dv3中的项目正在抛出ARC Sematic问题 找到了名为’setRotation:’的多个方法,其中包含不匹配的结果,参数类型或属性 归档(发布模式).它在部署到模拟器/设备(调试模式)时运行良好. 在发布模式下,编译器在UIRotationGestureRecognizer和CCNode的旋转实现之间混淆. 当我在CCBAnimationManager.m中收到错误时,我将调 我在cocos2dv3中的项目正在抛出ARC Sematic问题
找到了名为’setRotation:’的多个方法,其中包含不匹配的结果,参数类型或属性
归档(发布模式).它在部署到模拟器/设备(调试模式)时运行良好.
在发布模式下,编译器在UIRotationGestureRecognizer和CCNode的旋转实现之间混淆.
当我在CCBAnimationManager.m中收到错误时,我将调用选择器setRotation的对象类型化为(CCNode *),但随后错误在CCActionInterval中爬升.我希望有一个更好的解决方案,而不是在cocos2d库中进行类型转换.

我究竟做错了什么?
感谢您的时间.

编辑

@interface CCAction : NSObject <NScopying> {    ID          __unsafe_unretained _originalTarget;    ID          __unsafe_unretained _target;    NSInteger   _tag;}@property (nonatomic,Readonly,unsafe_unretained) ID target;@property (nonatomic,unsafe_unretained) ID originalTarget;@property (nonatomic,reaDWrite,assign) NSInteger tag;

CCAction.m@synthesize tag = _tag,target = _target,originalTarget = _originalTarget;-(voID) startWithTarget:(ID)aTarget{    _originalTarget = _target = aTarget;}-(voID) startWithTarget:(ID)aTarget{    _originalTarget = _target = aTarget;}

类层次结构

@interface CCActionFiniteTime : CCAction <NScopying> @interface CCActionInterval: CCActionFiniteTime <NScopying>@interface CCbrotateto : CCActionInterval <NScopying>CCbrotateto.m {   -(voID) startWithTarget:(CCNode *)aTarget   {      [super startWithTarget:aTarget];      startAngle_ = [self.target rotation];      diffAngle_ = dstAngle_ - startAngle_;   }   -(voID) update: (CCTime) t   {      [self.target setRotation: startAngle_ + diffAngle_ * t];   }}
解决方法 这个问题让我头疼不已.虽然我已经为我的旧项目将cocos2d升级到v2.2版本(太复杂而无法更新到v3),但我仍然收到了此警告.我创建的任何动画在SpriteBuilder中使用旋转确实很奇怪,正如我在这里描述的那样:
Rotation animation issue on iPhone5S with cocos2d 2.0

最后我使用类型转换来解决它在CCBAnimationManager.m中的跟随

@implementation CCbrotateto-(voID)startWithTarget:(CCNode *)aTarget{    [super startWithTarget:aTarget];    starangle_ = [(CCNode *)self.target rotation];    diffAngle_ = dstAngle_ - startAngle_;}-(voID)update:(ccTime)t{    [(CCNode *)self.target setRotation: startAngle_ + diffAngle_ * t];}

有了这个改变,现在我也可以支持arm64了.

总结

以上是内存溢出为你收集整理的ios – ARC语义问题“仅在归档时命名为’setRotation’的多个方法”全部内容,希望文章能够帮你解决ios – ARC语义问题“仅在归档时命名为’setRotation’的多个方法”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1057418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存