こんにちは、objectAtInded メソッドを使用して配列から NSString を取得すると、常に例外が発生するようです。「PropertyList.plist」ファイルにある辞書からデータを読み取っています。私のコードは
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"PropertyList"
ofType:@"plist"];
names = [[NSDictionary alloc]
initWithContentsOfFile:path];
keys = [[[names allKeys] sortedArrayUsingSelector:
@selector(compare:)] retain];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
NSString *key = [keys objectAtIndex:section];
NSArray *nameSection = [names objectForKey:key];
static NSString *SectionsTableIdentifier = @"SectionsTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SectionsTableIdentifier];
if(cell == nil)
{
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SectionsTableIdentifier] autorelease];
}
cell.textLabel.text = [nameSection objectAtIndex:row];
return cell;
}
行のメソッド「cellForRowAtIndexPath」で例外が発生します
cell.textLabel.text = [nameSection objectAtIndex:row];
エラーメッセージは
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[__NSCFDictionary objectAtIndex:]: 認識されないセレクターがインスタンス 0x6832440 に送信されました
plistファイルは
「[nameSection objectAtIndex:row];」を使用する場所 常に例外を取得するステートメントのタイプ。