私は、アプリケーションデリゲート()とカテゴリ(および何もしないデフォルトウィンドウ)で構成される単純なCocoaアプリケーション(39 KB圧縮)を持っています。AppDelegateNSString
そのinitメソッドでは、はAppDelegateを作成しNSSavePanelます。これを行う前後に、NSStringカテゴリメソッドによって空白と改行がトリミングされた文字列の長さをログに記録しますstringByTrimmingWhitespace。
文字列は、空白文字と改行文字で構成されます。私のcategoryメソッドは、これらすべての文字をトリミングして、長さが0の文字列になるようにする必要があります。
NSSavePanelが作成される前に、私のstringByTrimmingWhitespaceメソッドが呼び出され、期待どおりに長さ0の文字列が返されます。NSSavePanelが作成された後、私のstringByTrimmingWhitespaceメソッドは呼び出されていないように見え、呼び出されたメソッドは新しい行をトリミングしません。ただし、NSStringまったく同じことを行う別のカテゴリメソッド(<code> stringByTrimmingWhitespaceAndNewlines)が呼び出され、期待どおりに機能します。
何が原因stringByTrimmingWhitespaceで呼び出されないのか、またはそれを修正する方法がまったくわかりません(名前を変更する以外に、これは私が行ったことです)。また、他のクラスの他のカテゴリメソッドがゴミ箱に入れられるのではないかと心配しています。ここで何が起こっているのか誰か知っていますか?