2013-02-24 147 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