2009-09-07 12 views
6

Ten kod powinien skopiować ciąg znaków do ogólnej aplikacji Pasteboard, jako obiektu tekstowego [[Ogólne położenie panelu UIPasteboard]], ale metoda powoduje zakończenie działania programu.UIPasteboard - nie można skopiować tekstu

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

myślę, że to ma coś wspólnego z formatem, widząc jak działa metoda, jeśli wiadomość jest ustawiony na literalnym ciągiem, ale resultTextView.text jest tylko NSString ... Nie do końca rozumiem, może ktoś pomoże?

Odpowiedz

3

Czy jesteś pewien, że resultTextView.text zwraca kopię kopii zapasowej, a nie faktyczną NSString* używaną do przechowywania danych? Patrząc na dokumentację Apple, wydaje się, że po prostu zwraca wewnętrzny wskaźnik (unretained). Wywołanie wywołania w łańcuchu używanym przez klasę UITextView może spowodować takie zachowanie.

+0

Wyciąganie [komunikat release] działa świetnie; Twoje zdrowie. – Boz

3

Wysyłasz -release do przedmiotu, który nie zrobiłeś (lub przynajmniej, które nie pojawiają się masz, z snippit) pierwsza -retain, +alloc lub uzyskać poprzez -copy ing inny obiekt.

Powiązane problemy