我构建了一个与iPhone应用程序一起使用的简单mac数据输入工具.我最近添加了使用简单绑定通过Image Well添加的缩略图.它是一种可转换的数据类型,似乎工作正常.
但iPhone应用程序不会显示图像.该属性不为null但我无法显示图像.以下是cellForRowAtIndexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSManagedObject *entity = nil;
if ([self.searchDisplayController isActive])
entity = [[self filteredListContent] objectAtIndex:[indexPath row]];
else
entity = [fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = [entity valueForKey:@"name"];
//cell.imageview.image = [UIImage imageNamed:@"ImageB.jpeg"]; //works fine
cell.imageView.image = [entity valueForKey:@"thumbnail"];//no error, but no file
return cell;
Run Code Online (Sandbox Code Playgroud)
我正在考虑问题是可转换的(我使用的是默认的NSKeyedUnarchiveFromData),或者我是如何调用缩略图的.我是新手,所以任何帮助都将不胜感激.
我计划构建一个主要内容是图像的应用程序.基本上,它将使用多个菜单UITableViews,其单元格将只有一个图像.单击单元格时,您将被推送到具有该图像的简单视图和另一个图像,其余部分具有详细内容.
这一切都很容易,我的问题是关于优化.它会有很多内容(可能是1k行)并且它会显示图像UITableView,因此Core Data是必须的(鉴于它的延迟加载和其他一些优化)
我的问题是:什么是最好的,将图像存储在Core Data数据库(as NSData)中或仅存储图像的名称?我想象的是,如果我存储资源的名称,对于设备中的每一行UITableView必须获取该图像,处理它最终显示它.当滚动它们时(预计会发生很多)我们会有很多提取图像.如果我将它们存储起来Core Data,它就像获取信息一样简单,并将其用作图像所在的位置.
存储图像的好处在于Core Datadb中存储blob的正常撤销.我不知道核心数据会出现多少问题(我在dbs中的经验主要来自MySQL)
另一方面,强硬的"常识"决定只保存名称并获取图像,因为如果他们被要求更多,它将需要更多的时间,我不确定这会有多大的性能影响是.是否有"最佳方式"存储它们?只是名字,然后调用pathForResourse:ofType:或者(如果它的速度更快)pathForResourse:ofType:inDirectory:上mainBundle,存储URI,或指向它的其他形式.
编辑:应用程序将随应用程序一起提供静态内容,用户将无法以任何方式修改此内容.(至少在1.0版本中)