iPhone:テーブルビュー付きのプロップ
-
26-10-2019 - |
質問
私はiPhoneのテーブルビューに問題があります。ここで毎回クラッシュする理由がわかりません。
- (void)viewDidLoad
{
[self checkAndCreatePList];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:pListPath];
self.animals = [plistDict objectForKey:@"Animals"];
[super viewDidLoad];
}
-(UITableViewCell *) tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath
{
static NSString *SimpleTableIdentifier =@"SimpleTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if(cell== nil){
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SimpleTableIdentifier]autorelease];
}
NSUInteger row = [indexPath row];
cell.textLabel.text = [animals objectAtIndex:row];
return cell;
}
Line Cell.TextLabel.Text = [Animals ObjectAtindex:row]でクラッシュします。そして、猛かけられていない例外によるアプリの終了を教えてくれます。
解決
Animals
プリストのキーとは、配列ではなく辞書を指します。辞書には保証された注文がないため、特定のインデックスでオブジェクトを要求することは意味がありません。
これに加えて、メモリリークがあります - plistDict
割り当てられますが、リリースされません。コードで静的アナライザーを実行しましたか?
他のヒント
[plistDict objectForKey:@"Animals"];
あなたが期待しているような配列ではなく、辞書を返すことです。データが正しいかどうかを確認するには、プリストファイルをチェックアウトする必要があります。
エラーはあなたが呼んでいるようです objectAtIndex
line cell.textlabel.text = [動物objectatindex:row]のnsdictionaryオブジェクトについて;動物には実行時に何が含まれているかを確認してください。このためには、この行の前にnslogを使用します。 nslog(@"%@"、動物);
ように見えます animals
いくつかです dictionary
そして、あなたは呼んでいます objectAtIndex:
そのメソッド。 objectAtIndex
: : は NSArray
方法。
所属していません StackOverflow