Reputation: 1646
This code should copy the string to the generalPasteboard, as the [[UIPasteboard generalPasteboard] string] object, but the method causes the program to terminate.
- (void)copyResultToPasteboard {
NSString *message = self.resultTextView.text;
[UIPasteboard generalPasteboard].string = message;
[message release];
}
I think it's something to do with format, seeing as the method works if the message is set to a literal string, but resultTextView.text is just an NSString... I don't fully understand, can anyone help?
Upvotes: 6
Views: 2831
Reputation: 49376
Are you sure that resultTextView.text
is returning a copy of the backing store, and not the actual NSString*
used to store the data? Looking over the Apple documentation, it seems likely it's just returning the internal pointer (unretained). Calling release on a string being used by the UITextView
class could cause this behaviour.
Upvotes: 3
Reputation:
You're sending -release
to an object which you didn't (or at least, which it doesn't appear you have, from the snippit) first -retain
, +alloc
or get through -copy
ing another object.
Upvotes: 3