スプリットビューのiPadアプリケーションを作成しています。ユーザーがマスタービューのバーボタン項目を押すと、モーダルが表示されます。このモーダルにはテキストフィールドがあり、キーボードリターンを受け取るためのIBActionがあります。App設定がクラッシュするUITableViewCell:textLabel:text
キーボードが戻ると、Farm
クラスの新しいインスタンスが作成されます(下のコード)。このインスタンスは、私のデリゲートに格納されている配列に追加されます。私はMasterViewController
のテーブルをリロードしようとします。このリロード時に、EXC_BAD_ACCESS
エラーでcell.textLabel.text
にアプリケーションがクラッシュします。
Farm *current = [delegate.arrayOfFarms objectAtIndex:indexPath.row];
cell.textLabel.text = [current getFarmTitle];
デリゲート内の配列に何個の要素があるかを尋ねると、現在の量も実際に表示されます。これは私にとって、この全部について奇妙なことです:ファームのインスタンスが存在するように見えます。
私は、MasterViewController
と私のNewFarmNamingView
クラスの両方にAppDelegateのインスタンスを持っています。マスターのインスタンスは、テーブルを移入することです。 NewFarmのインスタンスは、新しく作成されたFarm
をデリゲートに追加することです。以下のコード。クラスNewFarmNamingViewから
セグメント:ランタイム基準からクラスファームから
- (IBAction) keyboardDonePushed:(id)sender
{
// create a Farm and add it to the delegate
NSString *text = newFarmTextField.text;
Farm *newFarm = [[Farm alloc] init];
[newFarm setFarmTitle:text];
[[delegate arrayOfFarms] addObject:newFarm];
[newFarm release];
NSLog(@"Added farm: %@" , text);
// dismiss the view
[self closeView:nil];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// initialize the delegate
delegate = [[UIApplication sharedApplication] delegate];
}
セグメント
- (void) setFarmTitle : (NSString *) _farmTitle
{
farmTitle = _farmTitle;
}
- (NSString *) getFarmTitle
{
return farmTitle;
}
// NSCoding Methods
- (void) encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:farmTitle forKey:@"kFarmTitle"];
}
- (id) initWithCoder:(NSCoder *)aDecoder
{
farmTitle = [aDecoder decodeObjectForKey:@"kFarmTitle"];
return self;
}
// Initialization method
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
デバッグコンソールにはどのようなエラーが表示されますか? – UIAdam
受信した信号で質問を更新しました。デバッグスタックの先頭が「[UILabel setText:]」のすぐ上にある「objc_msgSend」です –
getFarmTitleが壊れている可能性はありますか? respondsToSelector:メソッドでラップしてみてください。 – CodaFi