0

私は Mac マーケットプレイスで販売しているアプリを持っていますが、このアプリは滞りなく実行されていました (顧客が Mavericks で実行し始めるまで)。

要するに、顧客から返された次のような例外です。

11/7/13 8:54:17.841 AM MyApp[65256]: -[Property watts Per Square MeterStringValue]: 認識されないセレクターがインスタンス 0x7fa66c80a760 に送信されました

ここで、"watts Per Square MeterStringValue" が有効なセレクターではないことは明らかですが、説明させてください。

文字列からスペースを削除したり、文字列の最初の文字を小文字に設定したりするなど、さまざまなことを行う一連のメソッドを持つ NSString のカテゴリがあります。このカテゴリは、アプリに埋め込むフレームワークに存在します。

そのカテゴリの 1 つの特定のメソッドは、文字列をバインド可能なキャメル ケース文字列に変換する「bindString」です。そう:

[@"これはファンキーな文字列です" bindString]

次の結果が得られます。

"thisIsAFunkyString"

私のアプリで Mavericks の下で発生しているように見えるのは、ソースで参照されているにもかかわらず、カテゴリ メソッドが常に呼び出されていないことです。この動作は完全にランダムです。アプリの実行中に、呼び出される場合と呼び出されない場合があります。そうでない場合、上記のような例外が発生します。

これは、Mavericks の下でのみ発生します。同じバイナリは、Mountain Lion と Lion の下で問題なく動作します。

今思うと、これはなぜなのか。Mavericks での Obj-C ランタイムの問題ですか? Xcode 5.0.1 コンパイラの問題ですか? わかりませんが、それはただ奇妙で、私を壁に押し上げています。

私はほぼすべてを試しました。次に試みるのは、カテゴリ .m と .h をフレームワークからヤンクして、アプリ プロジェクトに直接配置することです。

マーベリックスの下でこのようなものを見た人はいますか?

4

1 に答える 1