【问题标题】:UImagePickerController fires warning that cause a UIView+Layout category to stop workingUImagePickerController 触发警告,导致 UIView+Layout 类别停止工作
【发布时间】:2011-07-31 06:04:37
【问题描述】:

我有一个使用 UIImagePickerController 的应用程序,在我关闭它后,无论是拍照还是使用取消按钮,一些自定义 UIView 开始消失。它们消失的原因是因为它们的宽度或高度等于 0。我可以乱用应用程序(这是一个相当大的应用程序,有 4 个选项卡栏和服务器模式视图控制器),一切都很好,直到尝试拍照. 当我尝试打开 imagePicker 时,我收到了这个警告:

警告:试图删除一个 不存在的图书馆: /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.1 (8G4)/Symbols/System/Library/Frameworks/IOKit.framework/IOKit

刚刚发现了一些东西。 视图消失的可能原因是我使用的 UIView+Layout 类别在该警告之后停止工作。这个类别基本上可以帮助我将宽度/高度设置为如下视图:

  • (void) setWidth:(double)value { CGRect 框架 = [自身框架]; frame.size.width = 圆形(值); [自我设置框架:框架]; }

所有消失的视图都与这个类别有关,如果我手动操作这些更改,视图就会起作用。 有什么想法吗?

【问题讨论】:

    标签: ios ios4 xcode4 uiimagepickercontroller


    【解决方案1】:

    我和你有同样的警告,但应用程序崩溃了。
    原因是我有一个 UIView 类别,它有一个方法:

    +(UIView*)firstResponder;

    当我将此方法的名称更改为

    +(UIView*)theFirstResponder;

    问题消失了。

    我想我们不应该将我们类别中的方法命名为类似于该类的内置方法名称。

    你可能想把你的方法名改成这样:

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

    【讨论】:

    • setWidth: 不是 UIView 中的方法,所以不涉及覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多