On May 16, 2014, at 16:46 , William Squires <wsqui...@satx.rr.com> wrote:

>  Why doesn't NSData have a +[NSData dataWithString:(NSString *)] or -[NSData 
> initWithString:(NSString *)] method?

Because strings consist of *encoded* data, which (in principle) has no meaning 
outside the internals of the string itself**, and which is (in principle) 
architecture dependent***. Therefore strings (in principle) have no obvious 
external representation****.

> i.e. how do I convert the contents of an NSString object into an NSData 
> object?

-[NSString dataUsingEncoding:allowLossyConversion:]

You can specify UTF-16 for the conversion, if you like.


** That is to say, we *know* that NSString objects are arrays of UTF-16 code 
points, and we use that knowledge, but you can’t interpret the string’s raw 
data without knowing the encoding.

*** That is, endianness is an issue.

**** And the most common one these days, I think, is UTF-8, which you can’t get 
from NSString without a conversion.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to