【发布时间】:2010-06-01 13:28:29
【问题描述】:
好的,所以我的代码遇到了问题。我所做的是 UIButton 的子类化,因此我可以为它提供更多与我的代码相关的信息。我已经能够创建按钮并且它们工作得很好。拼音。
但是,我希望我的子类拥有的一件事是对 NSMangedObject 的引用。我的头文件中有这段代码:
@interface ButtonSubclass : UIButton {
NSManagedObjectContext *context;
NSManagedObject *player;
}
@property (nonatomic, retain) NSManagedObject *player;
@property (nonatomic, retain) NSManagedObjectContext *context;
- (id)initWithFrame:(CGRect)frame andTitle:(NSString*)title;
//- (void)setPlayer:(NSManagedObject *)aPlayer;
@end
如您所见,它有一个我希望它保存的 NSMagedobject(以及 Context)的实例变量。但是对于我的生活,我无法让它持有那个 NSManagedObject。我在实现文件中运行了这两个@synthesize 方法。
@synthesize context;
@synthesize player;
所以我不确定我做错了什么。这就是我创建按钮的方式:
ButtonSubclass *playerButton = [[ButtonSubclass alloc] initWithFrame:frame andTitle:@"20"]; //works
playerButton.context = self.context; //works
playerButton.player = [players objectAtIndex:i]; //FAILS
而且我之前已经初始化了玩家数组,在那里我得到了对象。另一个奇怪的事情是,当它到达代码中的这个位置时,应用程序崩溃(woot)并且控制台输出停止。它没有给我任何错误,并且根本没有通知该应用程序已崩溃。它只是……停下来。所以我什至不知道导致代码崩溃的错误是什么,除了它与那里设置“播放器”变量的那条线有关。想法和想法?我喜欢你的智慧!
【问题讨论】:
-
与问题无关,但您实际上不必拥有
NSManagedObjectContext的属性--您可以只使用player对象的managedObjectContext属性。
标签: objective-c iphone-sdk-3.0 uibutton subclass nsmanagedobject