Drop down to CFString. It has similar api to the NSData one you like. Mike.
Sent from my iPhone > On 2 May 2017, at 22:11, Jens Alfke <j...@mooseyard.com> wrote: > > I’ve got a heap block containing many UTF-8 strings, and I’m looking for the > cheapest way to create NSString objects from them, i.e. without copying all > the characters. > > -initWithBytesNoCopy:length:freeWhenDone: would be perfect, except that the > string bytes are not an individual malloc block (so I can’t use > freeWhenDone:YES), and I shouldn’t leave the big heap block in memory longer > than necessary (so I can’t use freeWhenDone:NO.) > > NSData has -initWithBytesNoCopy:length:deallocator:, which is exactly what I > want: the callback block tells me when the object doesn’t need the original > bytes anymore, so I can reference-count that heap block and free it when > there are no clients left. But NSString doesn’t have this :( > > If I created an NSData from the bytes this way, and then used that object to > initialize an NSString, would I get what I want? Or would the NSString > initializer just copy the bytes from the NSData without retaining it? Has > anyone experimented with this? > > —Jens > > PS: I’m aware of the tradeoffs of this technique, i.e. that a client holding > on to one small NSString could inadvertently keep the large heap block > around. > _______________________________________________ > > 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/mabdullah%40karelia.com > > This email sent to mabdul...@karelia.com _______________________________________________ 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