2013-02-24 86 views
-1

我有一些问题测试iPhone和模拟器iOS的区别iOS

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

测试决定在iPhone上。我去哪里检查的手机,但它实际上不是

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

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

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

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

一切都可以在模拟器myVar = NO; 和iPhone获得myVar = YES;

如何理解?

UPDATE(解决)

- (BOOL) myChecker 
    { 
     BOOL CheckSomething; 

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

    if (CheckerSomething) 
    { 
    return YES 
    } else { 
    return NO 
    } 
在xcode的模拟器CheckerSomething

是开始= NO; 但在iPhone CheckerSomething = YES在内存中加载变量时

是错误

强行付诸NO是决定问题

对不起,我的英语

+0

如果我可以使用iPhone与调试器在Xcode我可以搜索错误,但在模拟器都可以,并能不明白的地方错误 – user2037857 2013-02-24 13:23:58

+0

对不起,我不知道,有什么调试器中使用测试iphone!现在,我会尝试找出是什么问题 – user2037857 2013-02-24 13:27:15

+0

通过在Objective-C的变量约定一开始就有一个小写字母和类名称以大写字母开头。这个例外是一个变量,首先是一个很好理解的首字母缩略词,比如HTML。将'CheckerSomething'更改为'checkerSomething'将使您的代码更具可读性并允许分析仪更好地检查代码。 – zaph 2013-02-24 13:48:09

回答

0

最好的猜测是有一些未初始化的变量,并获得不同的初始值。 ARC帮助解决这个问题,因为它默认将方法变量(自动)初始化为零(0)。

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

通过跟踪在Xcode调试的代码(这是在iPhone设备上的模拟器都可用),看看是什么语句发生语句。设置一些断点,如myCheckersomething方法的顶部。

+0

我解决了我的问题并更新了我的帖子。所有的感谢 – user2037857 2013-02-24 13:40:55