gpt4 book ai didi

iPhone - 设备上的不同默认 boolean 值

转载 作者:太空狗 更新时间:2023-10-30 03:59:40 25 4
gpt4 key购买 nike

我最近有一些代码在模拟器上完美运行,但在设备上搞砸了。为什么? - 这很简单,但我无法解释解释。

我做了一些测试,创建了一个新的基于 View 的应用程序,添加了标签和标签的导出,并在 viewDidLoad 中编写了这段代码:

BOOL b;
if (b) {
label.text = @"Value = YES";
}
else {
label.text = @"Value = NO";
}

有趣的是,这是结果:

iOS Simulator (4.2): Value = NO
iOS Simulator (4.3): Value = NO
iPod Touch 2G (4.2.1) Value = YES
iPhone 3G (4.2.1) Value = YES

这意味着什么? - 在我看来,在设备上,默认 boolean 值是 YES,而在模拟器上,默认 boolean 值是 NO。

谁能澄清一下是否是这种情况?另外,如果有人可以解释这种行为,我会非常感兴趣。

我对问题的解决方案感兴趣,显然可以通过手动设置所需的默认值(在我的例子中为NO)来解决。

谢谢。

最佳答案

Objective-C 只是 C 的超集,在 C 中声明这样的变量只是在堆栈上为其提供内存。该变量在声明时未设置任何值,因此堆栈中最后的内容现在位于您的变量 b 中。

简而言之,它是未定义的,并且会因实现而异。规范就是这么说的。

关于iPhone - 设备上的不同默认 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8273013/

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