UImagePickerController выдает предупреждение, из-за которого категория UIView + Layout перестает работать - PullRequest
2 голосов
/ 07 апреля 2011

У меня есть приложение, в котором я использую UIImagePickerController и после того, как я закрываю его, делаю снимок или использую кнопку отмены, некоторые пользовательские UIView начинают исчезать.Причина, по которой они исчезают, заключается в том, что их ширина или высота становятся равными 0. Я могу возиться с приложением (довольно большое с 4 панелями вкладок и несколькими модальными контроллерами представления), и все хорошо, пока не сделаю попытку сделать снимок.,Когда я пытаюсь открыть imagePicker, я получаю следующее предупреждение:

предупреждение: попытался удалить несуществующую библиотеку: /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.1 (8G4) /Символы / Система / Библиотека / Каркасы / IOKit.framework / IOKit

Только что-то обнаружил.Возможно, причина исчезновения представлений заключается в том, что категория UIView + Layout, которую я использую, перестает работать после этого предупреждения.Эта категория в основном помогает мне установить ширину / высоту для вида как:

  • (void) setWidth: (double) value {CGRect frame = [self frame];frame.size.width = round (значение);[self setFrame: frame];}

Все исчезающие виды относятся к этой категории, и, если я изменю эти изменения вручную, представления работают.Есть идеи?

1 Ответ

0 голосов
/ 14 апреля 2012

У меня такое же предупреждение, как и у вас, но вместо этого происходит сбой приложения.
Причина в том, что у меня есть категория UIView, которая имеет метод:

+ (UIView *) firstResponder;

когда я меняю имя этого метода на

+ (UIView *) theFirstResponder;

проблема исчезла.

Полагаю, нам не следует называть методы в нашей категории аналогично именам встроенных методов этого класса.

Возможно, вы захотитеизмените имя вашего метода на что-то вроде этого:

+ (void)changeWidth:(double)value   
{   
   CGRect frame = [self frame];   
   frame.size.width = round(value);   
   [self setFrame:frame];  
}
...