gpt4 book ai didi

ios - UIButton - alloc initWithFrame : vs. buttonWithType:

转载 作者:技术小花猫 更新时间:2023-10-29 10:15:14 37 4
gpt4 key购买 nike

给定(任意):

CGRect frame = CGRectMake(0.0f, 0.0f, 100.0f, 30.0f);

下面两个代码片段有什么区别?

1.

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = frame;

2.

    UIButton *button = [[[UIButton alloc] initWithFrame:frame] autorelease];

最佳答案

我认为它们是等价的。哈哈!诡计多端的问题,你这个鬼鬼祟祟的小混混!

推理

  1. -buttonWithType: 返回一个自动释放的 UIButton 对象。

  2. +[NSObject alloc] 默认标量实例变量为 0,所以 buttonType 应该是 0,或 UIButtonTypeCustom

优缺点

  1. 您可能会争辩说,使用 -buttonWithType: 并显式设置 buttonType 会更清晰,并且如果 Apple 更改 UIButtonTypeCustom 会更安全> 为 1 而不是 0(这肯定永远不会发生)。

  2. 另一方面,您也可以争辩说使用 -initWithFrame 足够清晰和安全。此外,许多 Xcode 示例项目(例如“TheElements”和“BubbleLevel”)都使用这种方法。一个优点是您可以在应用程序主线程的运行循环耗尽其自动释放池之前显式释放 UIButton。而且,这就是为什么我更喜欢选项 2。

关于ios - UIButton - alloc initWithFrame : vs. buttonWithType:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6245882/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com