1

私のiPhoneアプリでは、アプリケーションはサーバーからXML形式でデータを受信し、UILabelで表示します。サーバーからのデータには£符号が含まれている可能性があります。この記号はエンコードされていません。XML文字列の場合と同じように渡されます。アプリはこの文字列を受け取り、UILabelに表示します。

これはほとんどの場合問題なく機能します。iOS 5.1を含むシミュレーターでは常に正常に動作しますが、ユーザーの1人が£、UILabelを表示する代わりに、実際に表示することを示すバグを報告しました£。これは最も奇妙なことです。

UILabelテキストは、次の単純なコード行で設定されます。

contentLabel.text = [node getValueForKey:keyName];

デバッガーを使用してコードをステップ実行しましたが、正しい文字列値が渡されて設定されていることがわかります。シミュレーターでも正しい結果を見ることができます。

ただし、(下の画像からわかるように)このユーザーの電話で何か問題が発生しています。足りないものはありますか?ここで何が問題になる可能性がありますか?そして、もっと重要なことに、どうすればこれを解決できますか?私の電話とシミュレーターではすべてが正常に機能し、このユーザーは私から全国にいるため、電話に物理的にアクセスできないため、状況は複雑になっています。

シミュレーターのスクリーンショットは次のとおりです。

シミュレーターのスクリーンショット

影響を受けたユーザーの電話のスクリーンショットは次のとおりです。

ユーザーの電話からのスクリーンショット

4

2 に答える 2

0

XMLの解析にどのライブラリを使用していますか?

大量のNSLoggingを有効にした新しいビルドオーバーメールをユーザーに送信してみてください(おそらく、testflightを使用することもできます。その優れた機能により、すべてのログを無線で確認できます)、問題が発生する場所を確認できます。

それらは、テストしていたシミュレーターとは異なるiOSバージョンにありますか?問題は彼らのiPhoneでいつも起こりますか?あなた自身のiOSデバイスはどうですか、それは決して起こりませんか?

ランダムなアドバイスをすべて申し訳ありませんが、そのうちの1つが修正した場合に備えて、私はただ何かをチャックしています。

彼らが同じアプリバージョン、同じデバイス(シミュレータではなく実際のiPhone)、同じiOSバージョンを実行している場合、問題が何であるか、または何である可能性があるかはわかりません。

あなたが怠惰に感じているなら(そして私はこれをしないことをお勧めします、それはかなりハッキーです)あなたはいつも使うことができます:

finalString = [firstString stringByReplacingOccurancesOfString:@"£" withString:@"£"];
于 2012-04-04T16:39:46.883 に答える
0

問題は自然に解決したようです。iOS4でもiOS5でも再現できず、他の何人かのユーザーと話をすることもできませんでした。最初に問題を報告したユーザーに確認したところ、iOSを5.1から5.1.1にアップグレードした後、問題は解決したと彼女は言いました。しかたがない... :)

于 2012-05-31T15:09:43.980 に答える