如何在iphone中将类文件的对象存储在数组中
我是iphone应用程序开发新手。所以请帮我。我正在尝试开发一个应用程序,在该应用程序中,我需要在表视图中显示联系人姓名、号码和图像。我有一个名为Records.h和Records.m的类文件,其中有三个NSString类型的对象name、number和image。我从数据库中选择数据,并将每个数据存储在此类文件的对象中,如下所示:如何在iphone中将类文件的对象存储在数组中,iphone,nsarray,Iphone,Nsarray,我是iphone应用程序开发新手。所以请帮我。我正在尝试开发一个应用程序,在该应用程序中,我需要在表视图中显示联系人姓名、号码和图像。我有一个名为Records.h和Records.m的类文件,其中有三个NSString类型的对象name、number和image。我从数据库中选择数据,并将每个数据存储在此类文件的对象中,如下所示: Records *data = [[Records alloc] init]; data.contactname = [NSString stringWithUT
Records *data = [[Records alloc] init];
data.contactname = [NSString stringWithUTF8String: (char *) sqlite3_column_text(stmt, 1)];
data.contactnumber = [NSString stringWithUTF8String: (char *) sqlite3_column_text(stmt, 2)];
data.contactimage = [NSString stringWithUTF8String: (char *) sqlite3_column_text(stmt, 3)];
然后我将这个类文件存储在NSMutableArray
中:
[array addObject:data];
这样,在每个索引处,我都有每个对象,每个对象都有三个字符串name、number和image。现在我只想从every索引中选择名称部分。你知道怎么做吗?..在tableview的cellForRowAtIndexPath方法中,编写以下代码:
Records *shareObj = [array objectAtIndex:indexPath.row];
label.text=shareobj.name;
label2.text=shareobj.contactnumber;
试试这个:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Records *objRecord = [array objectAtIndex:indexPath.row];
NSLog(@"Name :: %@", objRecord.name);
lbl.title.text = objRecord.name;
}
谢谢。Simple,请检查下面添加的代码:在tableview数据源方法中:cellforrowatinexpath:Record*Record=[array objectAtIndex:indexath.row];现在您可以获取、record.contactname、record.ctnumber、record.ctimage等正在工作的。。!!谢谢你,先生……)我已经实现了这一点。但我面临一个问题。每次标签都会得到相同的文本。就像我有两个名字paul和john,但在表视图中,两个单元格都显示了相同的名字paul。select查询正在从数据库返回正确的数据。下面是代码:data=[namelistobjectatindex:indexath.row];UILabel*lbl;lbl=(UILabel*)[带标记的单元格视图:1];lbl.text=data.contactname;请添加您在CellForRowatineXpath中添加的新代码,好吗?谢谢。问题现在已经解决了。实际上,我只为类的对象分配了一次内存,不允许为新对象创建内存。记录*数据=[[Records alloc]init];实际上,我宣布这不是一个错误的地方。我已经实施了这一点。但我面临一个问题。每次标签都会得到相同的文本。就像我有两个名字paul和john,但在表视图中,两个单元格都显示了相同的名字paul。select查询正在从数据库返回正确的数据。下面是代码:data=[namelistobjectatindex:indexath.row];UILabel*lbl;lbl=(UILabel*)[带标记的单元格视图:1];lbl.text=data.contactname;问题现在已经解决了。实际上,我只为类的对象分配了一次内存,不允许为新对象创建内存。记录*数据=[[Records alloc]init];事实上,我宣布这不是一个正确的地方。
//in . h file
@property (strong, nonatomic) UILabel *labelContactName;
@property (strong, nonatomic) UILabel *labelContactNumber;
//in . m file
_labelContactName = [[UILabel alloc] initWithFrame:CGRectMake(50, 0, 230, 32)];
_lableContactName.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:_labelContactName];
_labelContactNumber= [[UILabel alloc] initWithFrame:CGRectMake(50, 27, 110, 20)];
_lableContactNumber.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:_labelContactNumber];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
Records *objRecord = [array objectAtIndex:indexPath.row];
NSLog(@"Name :: %@", objRecord.name);
_lableContactName.text=objRecord.name;
}