基本上始终使用指定的初始化程序时,在使用[UIView new];
而不是[[UIView alloc] initWithFrame:CGRectZero];
创建新的viewInstances时,我觉得有点脏吗?
是否有任何原因不?
有什么实际的区别吗?如果您正在创建一个没有任何框架信息的新视图实例,那么[UIView new];
的回退不会简单地消除掉许多代码错误吗?我的猜测是[[UIView alloc] initWithFrame:CGRectZero];
实际上是在引擎盖下调用的(?)
答案 0 :(得分:7)
[UIView new]
是替换[[UIView alloc] init]
的便捷方法,因此 1 与[[UIView alloc] initWithFrame:CGRectZero]
不同
有没有理由不这样做?“
在这种情况下,我会说“是”。在这种情况下,您无法保证init
等同于initWithFrame:CGRectZero
。
我的猜测是......
你可能是正确的,两者的行为相同;这不是未来的证据。像这样的实施细节可能会改变。
1。 可能会有所不同,我不知道initWithFrame:
在幕后做了什么。
答案 1 :(得分:0)
我最近想知道关于[UIView new]
的同样的事情。在新的代码示例中使用它时,我遇到了Jame的答案所涵盖的问题。这些问题在我恢复到[[UIView alloc] initWithFrame:CGRectZero].
之后得到了解决。至少我知道新UIView
继承了哪些属性。