Core data 是否仍然可以使用数组填充UITableView,但保留复选标记?

Core data 是否仍然可以使用数组填充UITableView,但保留复选标记?,core-data,uitableview,persistence,nsmutablearray,Core Data,Uitableview,Persistence,Nsmutablearray,我有一个应用程序,有一个选项卡栏,每个选项卡包含一个单独的表。第一个表使用核心数据保存其条目和复选标记。第二个选项卡上的第二个表使用NSMutableArray进行填充我将使用核心数据,但我必须预先填充它,并且此表不允许我像在第一个表中使用核心数据一样保留复选标记,但有些地方出了问题。代码如下所示: -(void)viewDidLoad { [super viewDidLoad]; airport = [[NSMutableArray alloc] init]; [airport ad

我有一个应用程序,有一个选项卡栏,每个选项卡包含一个单独的表。第一个表使用核心数据保存其条目和复选标记。第二个选项卡上的第二个表使用NSMutableArray进行填充我将使用核心数据,但我必须预先填充它,并且此表不允许我像在第一个表中使用核心数据一样保留复选标记,但有些地方出了问题。代码如下所示:

 -(void)viewDidLoad {
    [super viewDidLoad];
airport = [[NSMutableArray alloc] init];
[airport addObject:@"Passport"];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [airport count];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath        *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

// Set up the cell...
NSString *cellValue = [airport objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
//[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];


NSManagedObject *item = [[self fetchedResultsController] objectAtIndexPath:indexPath];
cell.textLabel.text = [item valueForKey:@"name"]; //CHANGED TO DETAIL


if ([[item valueForKey:@"check"] boolValue]) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}

cell.selectionStyle = UITableViewCellSelectionStyleNone;

    return cell;
}

}

我相信cell.textlab.text=[item]行valueForKey@name];
是什么引起的。我所要做的就是从数组中填充表并保留复选标记。非常感谢您的帮助。提前感谢。

此行将替换单元格文本:

cell.textLabel.text = [item valueForKey:@"name"];
最初由以下几行指定:

NSString *cellValue = [airport objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

为什么要使用item的name属性?

name是名为Hero的实体中的一个属性,这是我的第一个表的工作方式,它在加载时检查名称是否有复选标记。我有没有办法用数组或预加载的列表保留复选标记?有很多方法可以实现您想要的功能,包括核心数据。我会使用核心数据,因为您已经在使用它,但是如果您愿意,可以使用属性列表plist来持久化选中的数据数组。我如何使用plist来持久化选中标记?数组会代替plist吗?plist是一种文件类型。您可以使用writeToFile:atomically:将数组作为plist写入存储器,并使用initWithContentsOfFile:读取它。假设标记为选中的是核心数据管理的对象,您可能希望存储一个已选中对象的objectID属性数组,确保首先保存所有对象。同样,为什么不使用核心数据呢?根据我的经验,核心数据不能预先填充。我曾经使用苹果开发人员的核心数据技术支持,但被告知并非如此。到目前为止,我只是想写NSUserDefaults,因为这只是检查mar持久性。完整的代码可以在这里看到。我还不知道是什么让它这次崩溃的。我添加了这个问题,只是为了让人们能够看到更改后的代码。
NSString *cellValue = [airport objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;