2013-12-19 4 views
0

Я сделал тестовое приложение для съемки фотографий с помощью кнопки камеры. Я тестирую симулятор, поэтому я не могу делать снимки. Но я создал метод IBAction, который при вызове позволяет пользователю выбрать изображение из библиотеки фотографий. Это метод: -NSLog не исполняет

- (IBAction)takePicture:(id)sender { 
      NSLog(@"Camera button tapped"); 
      UIImagePickerController *imagePicker= [[UIImagePickerController alloc] init]; 
       if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
        NSLog(@"Yes. The Camera is available"); 
        [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 

       } 
       else{ 
       NSLog(@"The Camera isn't available. Try thru the Photo Library"); 
       [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
       } 
      imagePicker.allowsEditing=YES; 
      [imagePicker setDelegate:self]; 

      NSLog(@"Presenting Modal Controller"); 
      [self presentViewController:imagePicker animated:YES completion:NULL]; 

     } 

В приведенном выше сценарии, когда вызывается метод (то есть, когда я нажмите кнопку бар элемент камеры), консоль не регистрирует кнопку камеры повернутой сообщение, а также как Представление Modal Controller message.All другие соответствующие сообщения NSLog регистрируются так, как они должны быть. Я не понимаю, почему среда выполнения не выполняет эти строки NSLog. Есть аналогичная проблема в - (void) imagePickerController: (UIImagePickerController *) picker сделалFinishPickingMediaWithInfo: (NSDictionary *) info, с которым я сталкиваюсь. Вот реализация-

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 
      NSLog(@"imagePicker called"); 
      NSString *oldKey= _item.imageKey; 
      if (oldKey) { 
       NSLog(@"Deleting image having key- %@",oldKey); 
       [[BNRImageStore sharedStore] deleteImageForKey:oldKey]; 
      } 

      UIImage *image= [info objectForKey:UIImagePickerControllerEditedImage]; 

      CFUUIDRef newUniqueID= CFUUIDCreate(kCFAllocatorDefault); 
      CFStringRef newUniqueIDString= CFUUIDCreateString(kCFAllocatorDefault, newUniqueID); 

      //Use that uniqueID to set our item's imageKey 
      NSString *key= (__bridge NSString *)newUniqueIDString; 
      _item.imageKey=key; 

      //Store image in the BNRImageStore with this key 
      NSLog(@"putting %@ in dictionary table",_item.imageKey); 
      [[BNRImageStore sharedStore] setImage:image forKey:_item.imageKey]; 

      //Releasing Core-Foundation objects 
      CFRelease(newUniqueIDString); 
      CFRelease(newUniqueID); 

      [imageView setImage:image]; 
      NSLog(@"Dismissing Modal Controller"); 
      [self dismissViewControllerAnimated:YES completion:NULL]; 
    } 

Здесь. сообщения NSLog - imagePicker под названием, а в третьей последней строке - Отказ от модального контроллера не отображается в консоли. Снова среда выполнения не обрабатывает эти строки NSLog.

Я полагаю, что что-то не так, потому что это поведение очень странно. Что происходит?

+0

Это звучит как проблема с производными данными. Попробуйте удалить ваши производные данные и выполнить чистую сборку –

+0

Что такое производные данные? – rahulbsb

+0

Можно ли удалить содержимое этой конкретной папки? Что он будет делать? – rahulbsb

ответ

0

Проверить эту строку кода ниже: -

#define NSLog if(0) NSLog 

Если упомянуть 0, то ваш NSLog оператор не будет выполнять. Так сделайте это 1 и проверить

#define NSLog if(1) NSLog 
0
other than NSLog .. is your app functionality working fine? few statements like NSLog (in editoe), PO(Console), P(Console) will not work some time, some time these will show wrong values also. functionality is working fine then try to show alert instead of NSLog and check. 

Попробуйте использовать вместо NSLog и проверить.

#ifdef DEBUG 
#define ALog(s, ...) NSLog(@"\n\n************************ DEBUG ***********************\n Class&method: %@,\n Line of Code: %d\n element Info: %@\n******************************************************************\n\n", \ 

[[NSString stringWithUTF8String: ФУНКЦИЯ] lastPathComponent], ЛИНИЯ, \ [NSString stringWithFormat (S), ## va_args]);

#else #define ALOG (...) #endif

использовать так же, как NSLog экс: диалоговые (@ "журнал помещается");

Смежные вопросы