2012-06-26 22 views
6

<> <> ---- Aalok đã trả lời câu hỏi này, tôi chỉ chờ anh ấy viết nó để tôi có thể chọn câu trả lời đúng. Cho đến lúc đó, cùng với việc thực hiện các thay đổi mà ông mô tả bên dưới, tôi phải gọi - self.library = [[ALAssetsLibrary alloc] init]; - trước mọi nỗ lực để lưu hình ảnh của tôi. Để đề phòng tôi cũng dừng AVSession chạy trước khi được cứu, khi đang bị khởi động lại (sử dụng [phiên stopRunning]; và [phiên startRunning]; ----- <> <>iOS5 Lưu hình ảnh vào thư mục tùy chỉnh, ALAssetsLibrary thất bại

<> < .> ----- EDIT 2: Bạn không cần phải dừng lại và khởi động lại phiên AV, thử nghiệm này triệt để và nó làm việc một cách hoàn hảo ----- <> <>

<> <> - --- EDIT 3: sau khi kiểm tra này trên thiết bị của tôi kỹ lưỡng, và nó làm việc hoàn hảo, mã là không hoạt động sau khi quá trình xem xét và đưa vào cửa hàng. Hai thiết bị giống hệt nhau (2x iPhone 4) chạy cùng một hệ điều hành, một bằng cách sử dụng xây dựng dev của tôi, một trong những ứng dụng sotre, phiên bản cửa hàng ap vẫn có lỗi. Từ bỏ với điều này cho bây giờ ----- <> <>

Tôi đang sử dụng các loại trong liên kết này để cố gắng lưu vào một thư mục tùy chỉnh:

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

Bây giờ nó hoạt động một số thời gian, nhưng không phải tất cả. Trong các ý kiến ​​nó được gợi ý rằng đoạn mã sau sẽ phát hiện nếu các thuộc tính nhóm là con số không:

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

nào tôi có, và nó phát hiện nếu các thuộc tính là con số không. Vì vậy, tất cả đều tốt. Những gì tôi đang đấu tranh là tại thời điểm đó thiết lập các thuộc tính và lưu hình ảnh. Tôi đoán rằng vào thời điểm này, chúng tôi có thể đặt tên album theo cách thủ công và lưu hình ảnh mà tôi đã thử nhưng lỗi vẫn xảy ra.

Bất kỳ ý tưởng nào? Cảm ơn bạn.

+2

này là tốt nếu bạn ở lại trên quan điểm tương tự nhưng nếu bạn đang điều hướng đến chế độ xem khác thông qua điều hướng đẩy bạn phải dừng phiên nếu không nó sẽ cho bạn lỗi chính xác ở lần thứ ba chụp ảnh và chuyển đến chế độ xem tiếp theo và cố gắng lưu hình ảnh –

+0

OK, cảm ơn vì điều đó. Trên ứng dụng của tôi, tôi loại bỏ bất kỳ khả năng làm bất cứ điều gì trong khi điều này đang diễn ra vì vậy nó không phải là một vấn đề, nhưng trên một phiên bản trong tương lai tôi sẽ đưa vào tài khoản này. – mrEmpty

Trả lời

4

Tôi phải đối mặt với cùng một vấn đề với tệp .h và .m này nhưng tìm một giải pháp cho việc này sau khi làm việc trong 2 đến 3 ngày và giải pháp rất đơn giản những gì tôi phải thay đổi.m tập tin trong

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

và trong

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

phương pháp tôi chỉ cần thêm này trước khi gọi các phương pháp bên

//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 }); // 

VÀ Tương tự cho các khác một

Happy Coding :)

EDIT

Trong phương pháp thứ hai tôi thêm một dòng bên dưới mỗi completionBlock(nil); dòng

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

Và tôi sử dụng thông báo này để đảm bảo hình ảnh được lưu trong album quá. Đến thời điểm đó tôi hiển thị UIActivityIndicator với một số tin nhắn văn bản và sau khi lưu thành công hình ảnh, một thông báo bật lên được hiển thị cho biết hình ảnh được lưu trong album có tên album. Và trong khi thời gian này, giao diện người dùng là không đáp ứng người dùng tức là không thể làm bất cứ điều gì khác sau đó nhấn nút home của thiết bị :);)

Chúc mừng Mã hóa :)

+1

Nếu có bất kỳ sự cố nào, vui lòng cho tôi biết vì điều này giải quyết được vấn đề được mô tả cho tôi :) –

+2

Trong chức năng thứ hai, thay đổi của bạn có ở trên hay dưới __block BOOL albumWasFound = NO; hàng? Tôi không ở nhà cho đến tối muộn để thử điều này. Cảm ơn bạn đã đăng :) – mrEmpty

+0

bên dưới dòng __block BOOL ..... YWC, thích được giúp ích cho bạn. :) –

Các vấn đề liên quan