-3

と呼ばれるカスタムクラスがありcontactます。このクラスには、name, addressなどの属性があります。型の配列を作成しcontact、UItableviewのカスタムセルに各属性の値を表示したいと思います。データを配列に格納するコード:

while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
            // Read the data from the result row
            NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
            myContact.nm = aName;
            NSString *aAddress = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
            myContact.address = aAddress;

            NSLog(@"%@",aName);     
            [list.details addObject:myContact];
            NSLog(@"%@", list.details);

}

@property(nonatomic,retain)NSMutableArray *details;ここでの詳細は、 .hのように宣言された配列です。

私の質問は、次のように各インデックスの値を取得するにはどうすればよいですか?

[0]->name
[0]->address

[1]->name
[1]->address ....

tableview.mの私のコード:

cell.name.text = [details objectAtIndex:indexPath.row]; // not working

どうすればこれを解決できますか?

4

5 に答える 5

1

まず、クラスのオブジェクトを作成します。

Contact *con = [details objectAtIndex:indexPath.row];

すべての配列を「con」オブジェクトに格納します。

次に、それを使用して、

NSLog("Name :: %@", con.nm);
NSLog("Addr :: %@", con.address);

その特定の連絡先オブジェクトの名前とアドレスを参照します。

ありがとう。

于 2013-01-16T05:00:00.893 に答える
1
[[details objectAtIndex:indexPath.row] nm];

nmあなたはただあなたのオブジェクトを入力する必要があります。これは私のために働きます。

于 2014-10-15T17:08:20.340 に答える
0

必要なもの:

cell.name.text = [[details objectAtIndex:indexPath.row] nm];

この行を使用する場合:

[details objectAtIndex:indexPath.row];

タイプのオブジェクトを返しますcontactnm次に、名前を格納するプロパティを取得する必要があります。したがって、次のように使用する必要があります。

[[details objectAtIndex:indexPath.row] nm];
于 2013-01-16T04:56:24.753 に答える
0

さて、あなたは探していますか

cell.name.text = [[details objectAtIndex:indexPath.row] name];

于 2013-01-16T04:41:36.280 に答える
0

[details objectAtIndex:indexPath.row];オブジェクトを返しContactます。必要なのは、コード内の名前を表すオブジェクトnmのプロパティです。Contact

これを試して、

Contact *myContacts = [details objectAtIndex:indexPath.row]; 
cell.name.text = [myContacts nm]; //or [[details objectAtIndex:indexPath.row] nm];

同様にあなたも得ることができます[myContacts address]

編集: コメントの質問に基づいて、答えは次のとおりです。

while(sqlite3_step(compiledStatement) == SQLITE_ROW) {

        Contact *myContact = [[Contact alloc] init]; //you should add this here, not outside the loop
        // Read the data from the result row
        NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
        myContact.nm = aName;
        NSString *aAddress = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
        myContact.address = aAddress;

        NSLog(@"%@",aName);
        [list.details addObject:myContact];
        NSLog(@"%@", list.details);

    }
于 2013-01-16T04:52:10.080 に答える