【发布时间】:2018-01-27 01:46:25
【问题描述】:
我想将回复转换为NSDictionary。响应是ALRegistrationResponse (https://github.com/AppLozic/Applozic-Chat-iOS-Framework/blob/master/Applozic/DomainClasses/ALRegistrationResponse.m) 的实现。
NSDictionary *_response = @
{
@"message":[response message] != nil ? [response message] : [NSNull null],
@"deviceKey":[response deviceKey] != nil ? [response deviceKey] : [NSNull null],
@"userKey":[response userKey] != nil ? [response userKey] : [NSNull null],
@"contactNumber":[response contactNumber] != nil ? [response contactNumber] : [NSNull null],
@"lastSyncTime":[response lastSyncTime] != nil ? [response lastSyncTime] : [NSNull null],
@"currentTimeStamp":[response currentTimeStamp] != nil ? [response currentTimeStamp] : [NSNull null],
@"brokerURL":[response brokerURL] != nil ? [response brokerURL] : [NSNull null],
@"imageLink":[response imageLink] != nil ? [response imageLink] : [NSNull null],
@"statusMessage":[response statusMessage] != nil ? [response statusMessage] : [NSNull null],
@"encryptionKey":[response encryptionKey] != nil ? [response encryptionKey] : [NSNull null],
@"displayName":[response displayName] != nil ? [response displayName] : [NSNull null],
@"notificationSoundFileName":[response notificationSoundFileName] != nil ? [response notificationSoundFileName] : [NSNull null]
};
【问题讨论】:
-
感谢您的链接!对所有字段进行迭代怎么样?
-
我不会推荐它,但是
NSArray *keys = @[@"message", @"deviceKey", etc.]; NSMutableDictionary *_response = [NSMutableDictionary new]; for (NSString *aKey in keys){[_response setObject:[response valueForKeyPath:key]?:[NSNull null] forKey:key];} -
它的超类有一个 -dictionary() 函数。它可能会做你想做的事。我意识到这有点晚了。 NSCoding,不在上面,但可以/应该用于存储
标签: ios objective-c applozic