有问题
我正在编写一个在模拟器中测试的应用程序。所有正常
测试决定在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 is begin=NO;但在iPhone中CheckerSomething=YES在内存中加载变量时
那就是错误
强制设置为NO是决定问题
对不起我的英语
最好的猜测是有一些变量没有初始化,得到的初始值不同。ARC有助于实现这一点,因为它默认情况下会将方法变量(automatics(初始化为nil(0(。
对代码运行Analyze并修复任何警告。
在Xcode调试器中跟踪代码(它在iPhone设备的模拟器中都可用(,逐个语句查看发生了什么。设置一些断点,例如在myChecker
和something
方法的顶部。