测试iPhone和iOS模拟器的区别
我有一些问题 我正在编写一个在模拟器中测试的应用程序。好的 测试决定在iPhone上进行。我在电话里查了一下,但事实上不是这样测试iPhone和iOS模拟器的区别,iphone,ios,cocoa,ios-simulator,Iphone,Ios,Cocoa,Ios Simulator,我有一些问题 我正在编写一个在模拟器中测试的应用程序。好的 测试决定在iPhone上进行。我在电话里查了一下,但事实上不是这样 - (BOOL) myChecker { /// .... if ..... { return YES } else { return NO } ...... - (void) something { BOOL myVar = [self myChecker]; if (myVar) { // ..... } else { //..... } } 在模拟器中一切
- (BOOL) myChecker
{
/// ....
if .....
{
return YES
} else {
return NO
}
......
- (void) something {
BOOL myVar = [self myChecker];
if (myVar) {
// .....
} else {
//.....
}
}
在模拟器中一切正常myVar=NO;
而iphone的myVar=YES
如何理解
更新(已解决)
在xcode模拟器中,CheckerSomething是begin=NO;
但在iPhone中,在内存中加载变量时,CheckerSomething=YES
这是错误的
强行否定是一个决定问题
对不起,我的英语是最好的猜测是,有一些变量没有初始化,得到的初始值不同。ARC对此很有帮助,因为默认情况下它将方法变量(自动)初始化为nil(0) 对代码运行分析并修复所有警告
跟踪Xcode调试器中的代码(它在iPhone设备上的模拟器中都可用),逐个语句查看发生了什么。设置一些断点,例如在
myChecker
和something
方法的顶部。如果我可以在Xcode中使用带调试器的iPhone,我可以搜索错误,但在模拟器中一切正常,无法理解错误的位置抱歉,我不知道,在测试的iPhone中调试器使用了什么!现在,我将尝试通过Objective-C变量中的约定来确定问题所在,变量以小写字母开头,类名以大写字母开头。例外情况是一个变量,它以一个众所周知的首字母缩略词(如HTML)开头。将CheckerSomething
更改为CheckerSomething
将使代码更具可读性,并允许分析器更好地检查代码。
- (BOOL) myChecker
{
BOOL CheckSomething;
/// ....
if ....something {
CheckerSomething = YES
} else {
if .....
{
}
}
if (CheckerSomething)
{
return YES
} else {
return NO
}