インターフェイス部分で宣言された NSString があります。
@property (非アトミック、保持) NSString *filePath;
viewDidLoad でこれに値を指定し、カスタム メソッドの 1 つから呼び出そうとすると、初めて機能しますが、2 番目にクラッシュします。私の意見では、最初の呼び出し時に filePath が自動解放されました。
私は別のアプローチを試みましたが、私の方法では次のようなことをしました:
NSString *path = [[[NSString init] alloc] autorelease]; path = [filePath コピー];
今回はうまくいくようですが、パスのretainCountをチェックすると、常に増加しています。メソッドが初めて呼び出されたとき、retainCount は 4 ですが、2 回目は 2、3 回目は 3 というように続きます。
[copy] が原因で filePath が増加していることは理解していますが、パス変数についてもなぜですか? そして、なぜ最初のケースでうまくいかなかったのですか?