2012-06-26 41 views
6

<> <> ---- Aalok已經回答了這個問題,我只是等着他寫了,所以我可以選擇,作爲正確答案。在此之前,隨着他在下面描述的改變,我必須調用 - self.library = [[ALAssetsLibrary alloc] init]; - 在每次嘗試保存我的圖像之前。作爲預防措施我也停止了AVSession運行,直到後保存,當重新開始爲(使用[會話stopRunning];和[會話startRunning]; ----- <> <>iOS5的影像保存到自定義文件夾,ALAssetsLibrary失敗

<> < > -----編輯2:您不需要停止和重新啓動的AV會議,全面測試這和它的工作完美----- <> <>

<> <> - ---編輯3:完全在我的設備上進行測試後,它的工作完美,代碼是一旦通過審覈流程並投入商店,則無法正常工作。兩個相同的設備(2x iPhone 4)運行相同的操作系統,一個使用我的開發版本,一個應用程序sotre,ap store版本仍然存在缺陷。放棄這個現在----- <> <>

我使用的是在這個環節的類別,以儘量保存到一個自定義文件夾:

http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/

現在,它的工作原理有些時候,但不是全部。在評論它已經提出,如果組屬性是零以下代碼將檢測:

if ([group valueForProperty:ALAssetsGroupPropertyURL] == nil) 
{ 
NSLog(@」group properties are nil!」); 
} else { 
[group addAsset:asset]; 
} 

這我倒,它並檢測是否該屬性是零。所以一切都很好。我正在努力的是在這一點上設置屬性並保存圖像。我猜測,在這一點上,我們可以手動設置albumName並保存我嘗試過的圖像,但錯誤仍然存​​在。

任何想法?謝謝。

+2

這是好的,如果你停留在相同的觀點,但如果您通過推送導航導航到其他視圖,您必須停止會話,否則在拍攝圖像和導航到下一個視圖並嘗試保存圖像時第三次會出現錯誤。 –

+0

好的,謝謝。在我的應用程序中,我刪除了在發生這種情況時做任何事情的能力,所以這不是問題,但是在將來的版本中,我會考慮到這一點。 – mrEmpty

回答

4

我面對同樣的問題,這個.h和.m文件,但找到一個解決方案後,它的工作2至3天,解決方案是非常簡單的,我必須改變。在

-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock

-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock

方法M檔,我只是調用內部方法

//THE CHANGE dispatch_async(dispatch_get_main_queue(),^{ // 
[self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL* assetURL, NSError* error) 
    { 
     //error handling 
     if (error!=nil) 
     { 
      completionBlock(error); 
      return; 
     } 
     //add the asset to the custom photo album 
     [self addAssetURL: assetURL toAlbum:albumName withCompletionBlock:completionBlock]; 
    }]; 
//THE CHANGE }); // 

與同爲另一種

之前添加此快樂編碼:)

編輯

在第二個方法我添加的每個completionBlock(nil);

[[NSNotificationCenter defaultCenter] postNotificationName:kSaveSuccess object:nil]; 

下方的行,而且我用這個通知,以確保圖像保存在相冊了。直到那時我顯示UIActivityIndicator帶有一些文字信息,並且在成功保存圖像後顯示一個彈出信息,表示圖像保存在具有相冊名稱的相冊中。雖然這一次的UI反應遲鈍,即用戶不能做其他然後按的設備:) home鍵的任何事情;)

編碼快樂:)

+1

如果有任何問題,請告訴我,因爲這解決了我描述的問題:) –

+2

在第二個函數中,您的更改是在__block BOOL albumWasFound = NO之上還是之下?線?我今晚不在家,直到今天晚上才嘗試這個。感謝發佈:) – mrEmpty

+0

下面的__block BOOL ....線。 YWC,愛會對你有所幫助。 :) –