6

このコードは、[[UIPasteboard generalPasteboard] string]オブジェクトとして文字列をgeneralPasteboardにコピーする必要がありますが、このメソッドによりプログラムが終了します。

- (void)copyResultToPasteboard {
    NSString *message = self.resultTextView.text;
    [UIPasteboard generalPasteboard].string = message;
    [message release];
}

メッセージがリテラル文字列に設定されている場合にメソッドが機能することを考えると、これはフォーマットと関係があると思いますが、resultTextView.textは単なるNSStringです...完全には理解していません。誰か助けてもらえますか?

4

2 に答える 2

3

resultTextView.textデータを格納するために実際に使用されたものではなく、バッキング ストアのコピーを返していると確信していNSString*ますか? Apple のドキュメントを見ると、内部ポインター (保持されていない) を返すだけのようです。UITextViewクラスで使用されている文字列に対して release を呼び出すと、この動作が発生する可能性があります。

于 2009-09-07T13:05:52.617 に答える
3

最初に送信-releaseしていない (または少なくとも、スニピットからは存在しないように見える) オブジェクトに送信しているか、別のオブジェクトを通過しています。-retain+alloc-copy

于 2009-09-07T13:13:54.860 に答える