2011-03-30 10 views
8

मैं अपने ऐप के साथ एक फोटो ले रहा हूं, प्रतिनिधि विधि कहलाती है, छवि लाइब्रेरी में सहेजी गई है, लेकिन मुझे लॉग में क्रैश त्रुटि है:आईफोन - आईफोन एल्बम में कैमरे की तस्वीर सहेजते समय क्रैश

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage *pickedImage = [[info objectForKey:UIImagePickerControllerOriginalImage] retain]; 
    UIImageWriteToSavedPhotosAlbum (pickedImage, self, @selector(photoSaved:::), nil); 
} 

-(void)photoSaved:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo { 
    if(!error){ 
     NSLog(@"Photo saved to library!"); 
    } else{ 
     NSLog(@"Saving failed :("); 
    } 
} 

pickedImage नहीं के बराबर नहीं है:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSInvocation invocationWithMethodSignature:]: method signature argument cannot be nil' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x33ac0987 __exceptionPreprocess + 114 
    1 libobjc.A.dylib      0x3347b49d objc_exception_throw + 24 
    2 CoreFoundation      0x33a6b05d +[NSInvocation invocationWithMethodSignature:] + 340 
    3 PhotoLibrary      0x3038da11 __-[PLAssetsSaver _createWriteImageCompletionBlockWithImage:target:selector:contextInfo:]_block_invoke_1 + 96 
    4 PhotoLibrary      0x3038d7cd __-[PLAssetsSaver _saveImage:imageData:properties:completionBlock:]_block_invoke_2 + 56 
    5 PhotoLibrary      0x3038de87 __-[PLAssetsSaver queueJobData:requestEnqueuedBlock:completionBlock:imagePort:previewImagePort:]_block_invoke_2 + 122 
    6 libSystem.B.dylib     0x33c32680 _dispatch_call_block_and_release + 20 
    7 libSystem.B.dylib     0x33c32e38 _dispatch_main_queue_callback_4CF + 220 
    8 CoreFoundation      0x33a482ab __CFRunLoopRun + 1334 
    9 CoreFoundation      0x33a47c87 CFRunLoopRunSpecific + 230 
    10 CoreFoundation      0x33a47b8f CFRunLoopRunInMode + 58 
    11 GraphicsServices     0x33b0e4ab GSEventRunModal + 114 
    12 GraphicsServices     0x33b0e557 GSEventRun + 62 
    13 UIKit        0x32099329 -[UIApplication _run] + 412 
    14 UIKit        0x32096e93 UIApplicationMain + 670 
    15 MySoPrettyApp      0x00002737 main + 82 
    16 MySoPrettyApp      0x000026e0 start + 40 
) 
terminate called after throwing an instance of 'NSException' 

मेरे कोड निम्नलिखित है।
फोटो सहेजे गए विधि को .h
में घोषित किया गया है मैंने @selector (photoSaved :) और @selector (photoSaved) के साथ भी प्रयास किया।

समस्या क्या है?

उत्तर

8

, चयनकर्ता इस प्रकार है पाने के लिए के बाद से तर्क नाम भी विधि नाम का एक हिस्सा हैं उचित तरीके:

@selector(photoSaved:didFinishSavingWithError:contextInfo:) 
+0

धन्यवाद, मैं नहीं था यह नहीं पता। इस तरह के एक साधारण सवाल के लिए आज रात मेरी आलस्य के लिए खेद है। – Oliver

4

इस तरह यह प्रयास करें:

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo 
{ 
    if(!error){ 
     NSLog(@"Photo saved to library!"); 
    } 
    else{ 
    NSLog(@"Saving failed :("); 
    } 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *pickedImage = [[info objectForKey:UIImagePickerControllerOriginalImage] retain]; 
    UIImageWriteToSavedPhotosAlbum(pickedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 
} 
+0

आपके उत्तर के लिए धन्यवाद – Oliver

+0

कोई समस्या नहीं। आपकी परियोजना के लिए शुभकामनाएं। – Dmacpro

+0

धन्यवाद आदमी ने भी मेरी समस्या हल की। – user366584

संबंधित मुद्दे