我的关键值当前系统不起作用。这里设置了数组。
NSArray *matchInfo = [[NSArray alloc] initWithObjects:
@{@"matchName" : _matchName},
@{@"hostName" : _hostName},
nil];
然后它被转换为NSData
NSData *dataToSend = [NSKeyedArchiver archivedDataWithRootObject:message];
收到并设置
NSArray *receivedArray = [NSKeyedUnarchiver unarchiveObjectWithData:receivedData];
_matchName = [receivedArray valueForKey:@"matchName"];
_hostName = [NSString stringWithFormat:@"%@",[receivedArray valueForKey:@"hostName"]];
NSLog(@"%@, %@", _matchName, _hostName);
他们与众不同的原因是因为我用不同的方式玩弄。但是,nslog提供了这个。
( HostMatch, "" ),( "&#34 ;, 主机名 )
我无法理解,只是让我觉得数组最初设置错误。
答案 0 :(得分:2)
你应该拥有的是:
NSDictionary *matchInfo = @{@"matchName" : _matchName,
@"hostName" : _hostName};
答案 1 :(得分:1)
NSArray *array = @[@{@"key1" : @"value1"}, //-index 0-//
@{@"key2" : @"value2"}, //-index 1-//
@{@"key3" : @"value3"}, //-index 2-//
@{@"key4" : @"value4"}]; //-index 3-//
int i = 0; //-index 0 - 3-//
NSDictionary *dict = [array objectAtIndex:i];
NSArray *key = [dict allKeys];
NSArray *value = [dict allValues];
NSLog(@"%@", key[0]);
NSLog(@"%@", value[0]);
result :
2015-08-04 11:46:20.781 key1
2015-08-04 11:46:20.781 value1
答案 2 :(得分:0)
@{@"matchName" : _matchName}
这是[NSDictionary dictionaryWithObjectsAndKeys:_matchname, @"matchName"]
的简写。这意味着您有NSArray
个NSDictionaries
。
你可能想要的是一个带有两个密钥的NSDictionary。像这样:
NSDictionary *dictionary = @{@"matchName" : _matchName, @"hostName" : _hostName}
这对应于PHP和其他语言的数组(“key”=>“value”,“key”=>“value)类型。