gpt4 book ai didi

iphone - "item.enabled = item2.enabled = item3.enabled = value"是如何工作的?

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:52 30 4
gpt4 key购买 nike

感觉代码越少越好,所以想“优化”如何同时启用多个项目:

button1.enabled = YES;
button2.enabled = YES;
textField.enabled = YES;

...使用此代码。但它实际上做了什么?我相信 button2 启用状态将由设置 textField 启用状态的结果定义?如果 textField case 由于未知原因失败,那么 button1 将获得设置 button2 启用状态的操作结果?

至少在理论上 textField.enabled 可以是任何东西,button2.enabled NO 和 button1.enabled YES ?!?!?

button1.enabled = button2.enabled = textField.enabled = YES;

可能会出什么问题?这样安全吗?

最佳答案

诀窍在于赋值也是 C 中的表达式。它的值是存储到被赋值变量的值。换句话说,foo = 55 赋值给 foo,整个表达式的值为 5

此功能会导致一些类似于您的快捷方式,最著名的可能是 while (*dst++ = *src++) 将以 null 结尾的字符串 src 复制到开始时间。在 Objective-C 中,您经常可以在初始化程序中看到该功能:

- (id) init {
if !(self = [super init]) // self = super init; self == nil?
return nil;

return self;
}

注意单个 =,这不是错误。但是由于它可能 是错误的重要来源(当你真正指的是 == 时),现代编译器通常会警告赋值,你必须将它包含在另一对中使警告静音的大括号:if ((self = [super init]))

关于iphone - "item.enabled = item2.enabled = item3.enabled = value"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7411923/

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