簡體   English   中英

為什么我收到此錯誤? CCSprite copyWithZone無法識別的選擇器發送到實例

[英]Why am I getting this error? CCSprite copyWithZone unrecognized selector sent to instance

我很難搞清楚為什么我遇到了這個錯誤:

CCSprite copyWithZone無法識別的選擇器發送到實例

我想在Rectangle對象中保留對rectangleSprite的引用。 我在Rectangle.m文件中合成它。 我是否正在嘗試將rectangleSprite存儲在Rectangle的rectangleSprite屬性中?

Rectangle.h

#import "CCNode.h"
#import "cocos2d.h"
#import "CCSprite.h"

@interface Rectangle : CCNode
{
    CCSprite *rectangleSprite;    
}

@property(nonatomic,readwrite,copy) CCSprite *rectangleSprite;

@end

CocosScene.m

...
CCSprite *rectangleSprite = [CCSprite spriteWithFile:@"rectangle.png"];
Rectangle *rectangle = [[Rectangle alloc] init];
rectangle.rectangleSprite = rectangleSprite;
...

您已將rectangleSprite屬性定義為copy 這意味着, CCSprite類必須符合NSCopying協議(這意味着它必須實現copyWithZone:方法)。

該錯誤表明CCSprite沒有實現copyWithZone: .

如果您只想保留該值,請在屬性聲明中刪除copy 使用strong (或retain使用MRC)而不是copy

在將對象分配給屬性時,如果要創建對象的副本,則只能使用copy 但這要求該類支持復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM