【问题标题】:Any caveats using [UIView new];?使用 [UIView new]; 有什么注意事项吗?
【发布时间】:2014-03-06 10:15:52
【问题描述】:

被认为基本上总是使用指定的初始化程序,当使用[UIView new]; 而不是[[UIView alloc] initWithFrame:CGRectZero]; 创建新的viewInstances 时,我觉得有点脏?

这有任何原因吗? 有什么实际区别吗?如果您正在创建一个没有任何帧信息的新视图实例,那么回退到[UIView new]; 是否会简单地删除很多代码?我的 猜测[[UIView alloc] initWithFrame:CGRectZero]; 实际上是在后台调用的(?)

【问题讨论】:

    标签: ios uiview cgrect designated-initializer


    【解决方案1】:

    [UIView new] 是替换[[UIView alloc] init] 的便捷方法,因此它1 不同于[[UIView alloc] initWithFrame:CGRectZero]

    有什么理由不这样做吗?`

    在这种情况下,我会说“是”。在这种情况下,您不能保证init 等同于initWithFrame:CGRectZero

    我的猜测是……

    有可能你是对的,并且两者的行为相同;这不是未来的证据。像这样的实施细节可能会改变。

    1. 可能会有所不同,我不知道 initWithFrame: 在幕后做了什么。

    【讨论】:

      【解决方案2】:

      我最近对[UIView new] 也有同样的疑惑。在新的代码示例中使用它时,我遇到了 James 的回答中涵盖的问题。一旦我恢复到[[UIView alloc] initWithFrame:CGRectZero].,这些问题就解决了。至少我知道新的UIView 继承了哪些属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-18
        相关资源
        最近更新 更多