gabac
gabac

Reputation: 2078

NSDictionary into a NSInputStream

Is it possible to put in my NSDictionary into a NSInputStream? This would be my NSDictionary

NSArray *keys = [NSArray arrayWithObjects:@"name", @"device_token", @"identifier", nil];
NSArray *values = [NSArray arrayWithObjects:@"Test iPhone", initDeviceToken, [UIDevice currentDevice].uniqueIdentifier, nil];
NSDictionary *parameters = [NSDictionary dictionaryWithObjects:values forKeys:keys];

I tried something like this but it didn't worked...

NSInputStream *inputStream = [[NSInputStream alloc] init];
[inputStream setValue:@"123" forKey:@"identifier"];

Thx a lot

Upvotes: 0

Views: 477

Answers (2)

JugsteR
JugsteR

Reputation: 1164

Yes.

Any object that conforms to the NSCoding protocol is serializable and as such writable to a stream. Of course the items in a container object must also conform to the NSCoding protocol.

Upvotes: 0

Dave DeLong
Dave DeLong

Reputation: 243156

Sure. The way you can do it is serialize your dictionary into an NSData object using NSPropertyListSerialization, and then write your data object out to your NSInputStream.

The downside is that this requires that your dictionary only hold plist objects (numbers, strings, dates, data, arrays, and dictionaries).

Upvotes: 1

Related Questions