ユーザーが「Rectangle」オブジェクトの上にドラッグ/ドロップしたスプライトを追跡しようとしています。最も簡単な方法は、同じタイプの「MySprite」のプロパティを「Rectangle」オブジェクトに追加し、その値をその上にドロップされた「MySprite」と同じ値に設定することだと思いました。「Rectangle.h」ファイルでプロパティ「MySprite *sprite」を使用し、「Retangle.m」ファイルでそれを合成すると、「setSprite」メソッドが自動的に作成されると思いました。何かわからない……。
「target.sprite = selSprite;」CocosScene.m の以下のコード行により、次のエラーが発生します。
2013-05-14 20:32:51.953 DragDrop[461:c07] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[CCSprite setSprite:]: **認識されないセレクターがインスタンス0x8d5c280 に送信されました'
Rectangle.h
#import "CCNode.h"
#import "cocos2d.h"
#import "MySprite.h"
@interface Rectangle : CCNode
{
MySprite *sprite;
}
@property(nonatomic,readwrite,copy) MySprite *sprite;
@end
長方形.m
@implementation Rectangle
@synthesize sprite = _sprite;
@end
CocosScene.m
for(Rectangle *target in wordCircleRectangles)
{
if(CGRectIntersectsRect(selSprite.boundingBox, target.boundingBox))
{
target.sprite = selSprite;
}
}