1

電話からのすべての連絡先を格納する配列があります。すべての連絡先を表示したい UITableView があります。テーブルビューでそれらを表示するのに問題がありました oi は新しい配列を作成し、以下のコードを使用して連絡先配列をループし、そこから文字列を取得して新しい配列 (contactsNew) に保存しました

for (CNContact *contact in contacts)
    {
        NSString *string = [formatter stringFromContact:contact];
        [contactsNew addObject:string];
        NSLog(@"contact = %@", string);
    }

問題は、すべての連絡先がログに表示されることですが、それでも連絡先を表形式で表示できません。

- (NSInteger)tableView:(UITableView *)tableView    
numberOfRowsInSection:(NSInteger)section
{
return [contactsNew count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView    
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *simpleTableIdentifier = @"SimpleTableCell";

UITableViewCell *cell = [tableView   
dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc]   
initWithStyle:UITableViewCellStyleDefault   
reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [contactsNew objectAtIndex:indexPath.row];
return cell;
}

「string」変数の値と、contactsNew 配列に追加される数と内容を確認しましたが、すべて問題ないようです。

また、代わりに何か他のものを使用できますか:

cell.textLabel.text = [contactsNew objectAtIndex:indexPath.row];

新しい配列を作成する代わりに、連絡先配列を直接使用できるようにします。前もって感謝します。

4

5 に答える 5

1
Try this

for (CNContact *contact in contacts)
{
        NSString *string = [formatter stringFromContact:contact];
        [contactsNew addObject:string];
        NSLog(@"contact = %@", string);
}
[tableview reloadData];
于 2016-01-28T07:01:36.033 に答える
1

配列を作成した後にtableViewをリロードする必要があるため、forループの後に[tableView reloadData]を使用します

for (CNContact *contact in contacts)
{
    NSString *string = [formatter stringFromContact:contact];
    [contactsNew addObject:string];
    NSLog(@"contact = %@", string);
}

[tableview reloadData]; //Add this line

これがうまくいくことを願っています。

于 2016-01-28T07:05:49.253 に答える
0

問題を解決するために確認する必要があるいくつかのポイントを次に示します。

  • 最初に確認する必要があるのは、 new Array に値を追加した後に一度呼び出される天気のテーブルビュー メソッドですか? そうでない場合は、新しい配列に値を追加した後にテーブル ビューをリロードしてみてください。
  • 新しい配列に値を追加した後に正しく呼び出された場合は、メソッドNSLogの値を試してくださいcellForRowAtIndexPath

それがあなたを助けることを願っています。

于 2016-01-28T07:15:25.840 に答える