-1

我有一些问题

我正在编写一个在模拟器中测试的应用程序。一切都好

测试决定在 iPhone 上。我去哪里检查电话,但实际上不是

- (BOOL) myChecker
{
/// ....

if .....
{
return YES
} else {
return NO
}

......
- (void) something {

BOOL myVar = [self myChecker];
if (myVar) {
// .....
} else {
//.....
}
}

在模拟器中一切正常 myVar = NO; 和 iPhone 得到 myVar = YES;

如何理解?

更新(已解决)

   - (BOOL) myChecker
    {
      BOOL CheckSomething;

    /// ....
      if ....something {
         CheckerSomething = YES
        } else {
 if .....
{
}
}

    if (CheckerSomething)
    {
    return YES
    } else {
    return NO
    }

在 xcode 模拟器 CheckerSomething 是 begin = NO; 但在 iPhone CheckerSomething = YES在内存中加载变量时

那是错误

强行置NO是决定问题

对不起我的英语不好

4

1 回答 1

0

最好的猜测是有一些变量没有被初始化并且得到一个不同的初始值。ARC 对此有所帮助,因为它默认将方法变量(自动)初始化为 nil (0)。

对您的代码运行分析并修复任何警告。

跟踪 Xcode 调试器中的代码(它在 iPhone 设备上的模拟器中都可用)以逐条查看正在发生的事情。设置一些断点,例如在myCheckersomething方法的顶部。

于 2013-02-24T13:28:47.840 回答