2012-04-15 17 views
8

üzerinde tamamlanmasını aramayacağım Bu aldığım kodudur:dismissviewcontrolleranimated tamamlama UIImagePickerController

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


    [picker dismissViewControllerAnimated:YES completion:^(void){ 
     NSLog(@"Test"); 

    }]; 
} 

Bu kalıcı görünümü denetleyicisi görevden fakat tamamlama argüman çağırmaz. Yanlış bir şey mi yapıyorum?

cevap

17

boşluk tamamlama işleyicileri basit ^{ ile doldurulur, ben resim seçici

[picker dismissViewControllerAnimated:YES completion:^{ 
     NSLog(@"Test"); 

    }]; 

Ben elde edebilirsiniz tek açıklaması olduğunu .... önce sözdizimi görmedim başka yollarla işten atılma, ve siz o delege olmadığınızı (bu nedenle didFinishPickingMediaWithInfo mesajını almazsınız). Diğer bir olasılık da, zaman içinde SDK içinde bir başarısızlık olabilir. Hızlı bir örnek proje yürütmekten, tamamlama bloğunun her iki sözdizimsel modelde beklendiği gibi tetiklendiğini biliyorum.

+0

Yukarıda yazdığınız gibi çalışmadığı için aslında geçersiz kaldım. Onu değiştirdim ve hala çalışmıyor. – Andrew

+0

Günlüğün sağ tarafını kullanıyor musunuz o zaman? en sağdaki tuş seçilmelidir. – CodaFi

+1

Bu sözdizimi ve sorudaki sözdizimi eşdeğerdir. Herhangi bir "^ void (void) {NSLog (@" Test "); } ','^(void) {NSLog (@ "Test"); } 'veya'^{NSLog (@ "Test"); } 'aynı Blok olacak. Hiçbir şey belirtilmediğinde IOW, void’in bir Block’un getiri türü ve parametre listesi için varsayılır. –

İlgili konular