0
我有一個基本的iCarousel實現,我從核心數據存儲中提取圖像。我正在經歷與內存有關的崩潰,當你得到大量的圖像加載,我猜是預期的。問題是我不知道有什麼方法可以使用AsyncImageView庫,因爲對核心數據對象沒有NSURL崇敬。任何人都知道另一種方式來解決這個內存問題?iCarousel和來自coredata的圖像的內存問題
這裏是我的iCarousel viewForItemAtIndex
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
JournalEntry *journalEntry = (JournalEntry *)[fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
if (view == nil)
{
view = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 240.0f, 240.0f)] autorelease];
view.contentMode = UIViewContentModeScaleAspectFit;
}
[((UIImageView *)view) setImage:[journalEntry.image valueForKey:@"image"]];
NSLog(@"%i", index);
return view;
}
僅供參考這裏是添加圖片到我的核心數據存儲直出iPhoneCoreDataRecipes示例代碼的代碼。
@implementation ImageToDataTransformer
+ (BOOL)allowsReverseTransformation {
return YES;
}
+ (Class)transformedValueClass {
return [NSData class];
}
- (id)transformedValue:(id)value {
NSData *data = UIImagePNGRepresentation(value);
return data;
}
- (id)reverseTransformedValue:(id)value {
UIImage *uiImage = [[UIImage alloc] initWithData:value];
return [uiImage autorelease];
}
@end
您可以放置一段與問題有關的代碼嗎? – 2013-03-12 04:19:44
使用AsyncImageView並不難,但取決於你如何處理核心數據可能沒有幫助。知道(a)存儲圖像的核心數據實體是什麼樣的,以及(b)將這些圖像提供給iCarousel的代碼看起來是什麼樣子(可能是您的-carousel:viewForItemAtIndex:reusingView :,但真的是任何地方你從你的核心數據實體中獲取圖像)。 – 2013-03-12 18:30:01
爲兩個評論添加代碼。謝謝您的幫助。 – Aaron 2013-03-13 00:15:06