-1

問題があります

シミュレーターでテストされるアプリケーションを書いています。大丈夫

テストはiPhoneで決定しました。そして、私が行くところは電話でチェックしますが、実際にはそうではありません

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

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

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

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

シミュレータではすべてOKですmyVar=NO; そしてiPhoneはmyVar=YESを取得します。

理解する方法は?

更新(解決済み)

   - (BOOL) myChecker
    {
      BOOL CheckSomething;

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

    if (CheckerSomething)
    {
    return YES
    } else {
    return NO
    }

xcodeシミュレータではCheckerSomethingisbegin = NO; しかし、iPhoneのCheckerSomething = YESでは、変数をメモリにロードします

それはエラーです

強制的にNOにすると問題が決まります

私の英語でごめんなさい

4

1 に答える 1

0

初期化されておらず、異なる初期値を取得している変数があると推測されます。ARCは、メソッド変数(自動)をデフォルトでnil(0)に初期化するため、これを支援します。

コードに対してAnalyzeを実行し、警告を修正します。

Xcodeデバッガー(iPhoneデバイスのシミュレーターの両方で使用可能)でコードをトレースして、ステートメントごとに何が起こっているかを確認します。myCheckerおよびsomethingメソッドの上部など、いくつかのブレークポイントを設定します。

于 2013-02-24T13:28:47.840 に答える