-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;这里的 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];

它返回一个类型的对象contact。然后您需要获取nm存储名称的属性。所以你需要像这样使用:

[[details objectAtIndex:indexPath.row] nm];
于 2013-01-16T04:56:24.753 回答
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 回答
0

那么,你在寻找

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

?

于 2013-01-16T04:41:36.280 回答