我有一个名为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);
}
此处详细信息是在.h
中声明为@property(nonatomic,retain)NSMutableArray *details;
的数组
我的问题是如何检索每个索引上的值,如:
[0]->name
[0]->address
[1]->name
[1]->address ....
我在tableview.m中的代码:
cell.name.text = [details objectAtIndex:indexPath.row]; // not working
我该如何解决这个问题?
答案 0 :(得分:1)
首先制作一个类的对象。
Contact *con = [details objectAtIndex:indexPath.row];
它会将所有数组存储在'con'对象中。
然后,使用它,
NSLog("Name :: %@", con.nm);
NSLog("Addr :: %@", con.address);
它会引用Name&该特定联系对象的地址。
感谢。
答案 1 :(得分:1)
[[details objectAtIndex:indexPath.row] nm];
在nm
中,您只需输入您的对象即可。这对我有用。
答案 2 :(得分:0)
嗯,你在找
吗?cell.name.text = [[details objectAtIndex:indexPath.row] name];
答案 3 :(得分: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);
}
答案 4 :(得分:0)
你需要:
cell.name.text = [[details objectAtIndex:indexPath.row] nm];
使用此行时:
[details objectAtIndex:indexPath.row];
返回contact
类型的对象。然后,您需要获取存储名称的nm
属性。
所以你需要使用:
[[details objectAtIndex:indexPath.row] nm];