我不能设置一个数组存储在我的核心数据存储IOS一系列图像

这已被窃听,现在我要2天,我不能让我的头周围。 我想提取存储在我的核心数据存储多个图像。 使用图像拾取图像被用户选择并呈现给一个大小为小于70KB,变换为数据并弹出到核心数据存储。 这些图像是在一个幻灯片中使用。 实体被称为ImageCD并且图像被存储在属性friendsPhoto。 我也分配一个日期属性对图像进行排序。 这是当图像被保存,也ImageCD的属性进行。

我使用下面的代码,试图设置数组,但它不返回任何东西。 即时消息没有得到在调试器(NULL)读数只是“数组= 0元素的数量;”

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1]; NSLog(@"array's content sortDe:%@",sortDescriptors); NSMutableArray* sortedImages = [[NSMutableArray alloc] initWithObjects:imageCD.friendsPhoto, nil]; [sortedImages sortUsingDescriptors:sortDescriptors]; [sortDescriptor release]; [sortDescriptors release]; NSLog(@"array's content:%@",sortedImages); imageArray = [[NSMutableArray alloc]init] ; self.imageArray = sortedImages; NSLog (@"Number of elements in array = %i", [imageArray count]); self.theImageView.animationImages = [[NSArray alloc] initWithArray:imageArray]; NSLog(@"animationImages:%@",self.theImageView.animationImages);

那么,我究竟做错了什么? 我有我的怀疑它是值得做这行代码...

NSMutableArray* sortedImages = [[NSMutableArray alloc] initWithObjects:imageCD.friendsPhoto, nil];

但不能制定出替代的应该是什么。 我将永远感激谁可以改正我的错误。 我感谢你提前请让我知道如果你需要任何进一步的信息,啤酒或培根三明治。

哦,救我的理智,我的理智从我以前的应用程序(我的成套装备),它利用这种方法来检索从核心数据,但一个的tableView内的图像,即所谓的cellForRowInIndexPath等添加类检查图像和所有图像声音。

DetartrateD

2011-08-04 19:40:33.051 My Class Book[1027:707] After managedObjectContext: <NSManagedObjectContext: 0x1821b0> 2011-08-04 19:40:33.057 My Class Book[1027:707] array's content sortDe:( "(date, ascending, compare:)" ) 2011-08-04 19:40:33.059 My Class Book[1027:707] array's content:( ) 2011-08-04 19:40:33.061 My Class Book[1027:707] Number of elements in array = 0 2011-08-04 19:40:33.063 My Class Book[1027:707] animationImages:( )

现在,固定这些变化?

NSMutableArray *mutableFetchResultsA = [[managedObjectContext executeFetchRequest:requestA error:&error] mutableCopy]; if (mutableFetchResultsA == nil) { NSLog(@"Testing: No results found"); } else { NSLog(@"Testing: %d Results found.", [mutableFetchResultsA count]); NSLog(@"array's content sortDe:%@",mutableFetchResultsA); } [sortDescriptor release]; [sortDescriptors release]; imageArray = [[NSMutableArray alloc]init] ; self.imageArray = [mutableFetchResultsA valueForKey:@"friendsPhoto"]; [mutableFetchResultsA release]; [requestA release];

...

--------------解决方案-------------

假设图像存储为NSData *在属性ImageCD实体,这里是你需要做的:

self.imageArray = [self getImagesInManagedObjectContext:self.managedObjectContext];

这里是getImagesInManagedObjectContext:方法。 此方法检索从核心数据存储ImageCD对象,排序利用所需的属性,然后创建并返回一个自动释放NSMutableArrayUIImage *如果没有发现任何物体物体或为零。

- (NSMutableArray *) getImagesInManagedObjectContext:(NSManagedObjectContext *)moc{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ImageCD" inManagedObjectContext:moc];
[request setEntity:entity];

// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];

NSError *error = nil;
NSMutableArray *array = [NSMutableArray arrayWithArray: [moc executeFetchRequest:request error:&error]];
[request release];
[sortDescriptor release];
[sortDescriptors release];
if (array && [array count] && !error){
// create an array of images
NSMutableArray *images = [[NSMutableArray alloc] init];
for(ImageCD *obj in array){
UIImage *img = [UIImage imageWithData: (NSData *) obj.friendsPhoto];
[images addObject:img];
}

return [images autorelease];
}
else
return nil;

}

分类:iphone 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.917 (s). 10 q(s)