這隻有當上述項目已在此應用程序的運行產生反應。如果先前創建了條目,它會很好地獲取圖像。後臺線程返回的UIImage的結果作爲零
此代碼的工作,而無需使用後臺線程精細,所以它使我相信這是問題的一部分。下面的代碼我有:
NSMutableDictionary *thumbnails = [[NSMutableDictionary alloc] init];
dispatch_queue_t thumbnailSetupQueue = dispatch_queue_create("com.App.SetupTimelineThumbnails", NULL);
dispatch_async(cellSetupQueue, ^{
NSManagedObjectContext *newMoc = [[NSManagedObjectContext alloc] init];
NSPersistentStoreCoordinator *coordinator = [NSManagedObjectContext contextForCurrentThread].persistentStoreCoordinator;
[newMoc setPersistentStoreCoordinator:coordinator];
NSNotificationCenter *notify = [NSNotificationCenter defaultCenter];
[notify addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:newMoc];
Media *media = [localEntry.media anyObject];
UIImage *image = [media getThumbnail];
NSLog(@"image: %@", image);
[[NSNotificationCenter defaultCenter] removeObserver:self];
});
dispatch_release(cellSetupQueue);
然後
-(UIImage *)getThumbnail {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat:@"%@-%@.jpg",
self.mediaID,
THUMBNAIL_FILENAME]];
UIImage *thumbnail = [UIImage imageWithContentsOfFile:fullPath];
NSLog(@"correct size thumbnail: %@", correctSizeThumbnail);
return correctSizeThumbnail;
}
的的NSLog在getThumbnailWithSave返回作爲一個UIImage,其他的NSLog返回作爲零。
'GET'不應該被用作此類型的方法前綴.... – bbum 2012-08-02 17:58:23
你的問題中有太多的代碼。如果您將問題歸結爲重要的領域,那麼我們就可以更容易地找出問題所在。如果我不得不猜測,我會說這是因爲圖像還沒有被創建,或者當後臺線程嘗試訪問它時已經被釋放。 – Dustin 2012-08-02 18:05:46
@Dustin我現在已經削減了一點。如果這可能是問題,我該如何阻止圖像被釋放?你的意思是什麼沒有被創造出來?我向你展示了上面創建的所有元素。 – Andrew 2012-08-02 18:12:56