2009-09-07 10 views
6

Ce code doit copier la chaîne dans generalPasteboard, en tant qu'objet [[UIPasteboard generalPasteboard] chaîne], mais la méthode provoque l'arrêt du programme.UIPasteboard - impossible de copier du texte

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

Je pense qu'il est quelque chose à voir avec le format, car la méthode fonctionne si le message est réglé sur une chaîne littérale, mais resultTextView.text est juste un NSString ... Je ne comprends pas bien, peut quelqu'un vous aide?

Répondre

3

Etes-vous sûr que resultTextView.text renvoie une copie du magasin de sauvegarde et non le NSString* utilisé pour stocker les données? En regardant par-dessus la documentation d'Apple, il semble probable qu'elle renvoie juste le pointeur interne (non retenus). Appeler une version sur une chaîne utilisée par la classe UITextView peut provoquer ce comportement.

+0

Retirer [message release] fonctionne très bien; à votre santé. – Boz

3

Vous envoyez -release à un objet que vous ne l'avez pas (ou du moins, qu'il ne vous semble pas, du snippit) premier -retain, +alloc ou passer à travers un autre objet -copy ing.