类实例不能在objective-c中的iAction方法内引用

类实例不能在objective-c中的iAction方法内引用,objective-c,ibaction,Objective C,Ibaction,我正在为iphone编写一个小纸牌游戏 比如说,我有一个player.h/.m类,它有一个可变数组myCard 我写 @interface Player : NSObject{ NSMutableArray *myCard; } @property (nonatomic) NSMutableArray *myCard; @end 在视图控制器中,controller.h #import "Player.h" @interface controller : UIViewControll

我正在为iphone编写一个小纸牌游戏

比如说,我有一个player.h/.m类,它有一个可变数组myCard

我写

@interface Player : NSObject{
    NSMutableArray *myCard;
}
@property (nonatomic) NSMutableArray *myCard;

@end
在视图控制器中,controller.h

#import "Player.h"
@interface controller : UIViewController {
    Player *playerMe;
}
在视图控制器中,controller.m

 - (Player *)playerMe
{
    if (!playerMe) playerMe = [[Player alloc] init];
    return playerMe; 
}
然后我有一些实例方法在playerMe.myCard中添加object,到目前为止一切都很好

我在IB中添加了一个按钮,并有一个IB操作:

- (IBAction)btnSort:(id)sender {
    //do something with self.playerMe.myCard
}
然后出现问题,我查看调试窗口并查找所有变量中的值。在单击按钮之前,self.playMe.myCard可以使用某个对象。单击按钮后,self.playerMe.myCard为零,并且里面没有任何内容

所以,我想知道为什么self.playerMe.myCard不能被引用,而self.playMe是可以的,这是关于@property定义的吗


谢谢

尝试为myCard设置显式的
retain
属性。默认情况下使用assign属性时可能会出现泄漏

@property (nonatomic, retain) NSMutableArray *myCard;

我最终通过更改@property属性和myCard的自定义设置程序解决了这个问题

player.h

@property (nonatomic,retain) NSMutableArray *myCard;
player.m

- (void)setMyCard:(NSMutableArray *)aCardArr
{
    [myCard autorelease];
    myCard = [[NSMutableArray arrayWithArray:aCardArr] retain];
}
也许这只是一些基本的东西,但作为objective-c的更新版本,请发回来给像我这样的人作为参考


感谢您的帮助

您在内部做什么?(IBAction)b发件人:(id)发件人;当按钮被点击时?在哪里启动myCard?当类player.m initi尝试时调用alloc,它转储EXC\u BAD\u访问。实际上,在单击按钮之前,我只根据playerMe.myCard数组进行排序和添加子视图。顺便说一句,我自己转储对象。self.playerMe,self.playerMe.myCard到控制台。前两个没有问题。只有self.playerMe.myCard转储了EXC\u BAD\u访问权限。所以,它应该是关于内存分配的,但到目前为止还不能修复它。。。。。。。。。