【问题标题】:The difference in testing iPhone and Simulator iOS测试 iPhone 和 Simulator iOS 的区别
【发布时间】:2013-02-24 13:13:05
【问题描述】:

我有问题

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

测试决定在 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是决定问题

对不起我的英语

【问题讨论】:

  • 如果我可以在 Xcode 中将 iPhone 与调试器一起使用,我可以搜索错误,但在模拟器中一切正常,但无法理解错误在哪里
  • 对不起,我不知道,在测试的 iphone 中使用什么调试器!现在我将尝试找出问题所在
  • 按照惯例,Objective-C 变量以小写字母开头,类名以大写字母开头。例外情况是变量以易于理解的首字母缩写词开头,例如 HTML。将CheckerSomething 更改为checkerSomething 将使您的代码更具可读性,并允许分析器更好地检查代码。

标签: iphone ios cocoa ios-simulator


【解决方案1】:

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

对您的代码运行分析并修复所有警告。

在 Xcode 调试器中跟踪代码(它在 iPhone 设备上的模拟器中都可用)以逐个语句查看发生了什么。在myCheckersomething 方法的顶部设置一些断点。

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 2012-07-10
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    相关资源
    最近更新 更多