1

しばらくの間アプリ ストアにあり、OS 3.1 ~ 3.13 で完全に機能するアプリを入手しました。ただし、4.0b2 でテストすると、毎回同じ場所でクラッシュすることがわかりましたが、デバイス上でのみクラッシュし、シミュレーターではクラッシュしませんでした。テストには3GSを使用しています。

loadView で、インターフェイスで宣言および保持される NSNumberFormatter オブジェクトを初期化するので、どこからでもアクセスできます。私のメソッドでは、これを数回呼び出して、文字列値を nsnumbers に変換し、変更可能な辞書に格納します。

次に例を示します。

[myDictionary setObject:[myStyleFormatter numberFromString:@"1"] forKey:@"hours"];
[myDictionary setObject:[myStyleFormatter numberFromString:@"30"] forKey:@"minutes"];
[myDictionary setObject:[myStyleFormatter numberFromString:@"10"] forKey:@"seconds"];

何らかの理由で、時間を設定しようとするとすぐにクラッシュします。エラーは「nil値を挿入しようとしています(キー:時間)」です

私はずっと何か間違ったことをしていましたか?API は 4.0b2 で変更されましたか?

ありがとう、

ハウィー

4

1 に答える 1

1

私も同じ問題を抱えていました。NSNumberFormatter数字の 3 桁ごとにスペース (またはコンマ) が好きではないステートメントまで追跡しました。を持っている理由の 1 つですnumber formatter

NSNumber *number = [currencyFormatter numberFromString:mstring];

インターネット上の多くの例ではかなり標準的なコードであるため、多くの人が問題を見つけると思います。

とにかく、スペースを取り除くことで修正しました

NSArray *sArray = [mstring componentsSeparatedByString:@" "];
[mstring setString:@" "]; //space at beginning is OK, would prefer nil
for (NSString *sElement in sArray) {
    [mstring appendString:sElement];
}

その後、currencyFormatterラインは機能しました。

しかし、私のコードの別の領域では、同じcurrencyFormatterステートメントが問題なく機能しました。この領域のコードを変更して問題を発生させようとしましたが、できませんでした。

だから、非常に興味があります!!!

于 2010-07-09T18:47:06.093 に答える