Ios NSArray键=>;价值
我的键值当前系统不工作。这里是设置数组的位置Ios NSArray键=>;价值,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我的键值当前系统不工作。这里是设置数组的位置 NSArray *matchInfo = [[NSArray alloc] initWithObjects: @{@"matchName" : _matchName}, @{@"hostName" : _hostName}, nil]; 然后将其转换为NSData NSData *dataToS
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,
""
), (
"",
主机名
)
我无法理解,这只会让我意识到数组最初的设置是错误的。{“matchName”:\u matchName}
这是[NSDictionary dictionaryWithObjectsAndKeys:\u matchName,@“matchName”]的缩写。
。这意味着您有一个NSArray
和两个nsdictionary
您可能想要的是一个带有两个键的单一NSDictionary。像这样:
NSDictionary *dictionary = @{@"matchName" : _matchName, @"hostName" : _hostName}
这与PHP和其他语言中的数组(“key”=>“value”、“key”=>“value”)类型相对应。{matchName]:\u matchName}
这是[NSDictionary dictionary dictionary with objectsandkeys:\u matchName,@“matchName”的缩写]
。这意味着您有一个NSArray
和两个nsdictionary
您可能需要的是一个带有两个键的单一NSDictionary。例如:
NSDictionary *dictionary = @{@"matchName" : _matchName, @"hostName" : _hostName}
这对应于PHP和其他语言中的数组(“key”=>“value”、“key”=>“value”)类型。您应该拥有的是:
NSDictionary *matchInfo = @{@"matchName" : _matchName,
@"hostName" : _hostName};
你应该做的是:
NSDictionary *matchInfo = @{@"matchName" : _matchName,
@"hostName" : _hostName};
日志
matchInfo
和receivedArray
,这只是基本调试。调试是开发软件的一个重要部分。在我看来,考虑到(不正常的)输入,调试是完全正常的。为什么要有一个包含字典的数组,其中每个字典只包含一个键/值对?(当你不明白自己在做什么时,使用valueForKey
是很危险的,因为这只会让你更加困惑。)@HotLicks数据是通过蓝牙发送的,所以我不一定要每个键都有一个字典。我更喜欢旧的days数组(“key”=>“value”,“key”=>“value”),这样我就可以引用valueAtKey“key”“示例..?这是一个糟糕的问题,因为在使用Objective-C时,您确实应该从一开始就了解NSDictionary是什么。您不应该在这些基本概念上寻求帮助。logmatchInfo
和receivedArray
,这只是基本调试。调试是开发软件的一个重要部分。在我看来,考虑到(不正常的)输入,调试是完全正常的。为什么要有一个包含字典的数组,其中每个字典只包含一个键/值对?(当你不明白自己在做什么时,使用valueForKey
是很危险的,因为这只会让你更加困惑。)@HotLicks数据是通过蓝牙发送的,所以我不一定要每个键都有一个字典。我更喜欢旧的days数组(“key”=>“value”,“key”=>“value”),这样我就可以引用valueAtKey“key”“例如….?这是一个糟糕的问题,因为在使用Objective-C时,你真的应该从一开始就理解NSDictionary是什么。你不应该在这些基本概念上寻求帮助。我不一定想要一本字典,有可能在键=>值的基础上这样做吗?@Daniel-字典就是这样做的——它将每个键与一个值关联起来。为什么会有人否决这个答案?它可能需要解释为什么要使用此代码,但这是正确的答案。@rmaddy我不确定,也许有人被他们对答案的一条评论撞了一下。@rmaddy因为它只是我答案的复制粘贴。我不一定要字典,有可能在键=>值的基础上这样做吗?@Daniel-字典就是这样做的——它将每个键与一个值关联起来。为什么会有人否决这个答案?它可以解释为什么应该使用此代码,但这是正确的答案。@rmaddy我不确定,也许有人被他们对答案的评论撞了一下。@rmaddy,因为它只是我的answer@Rick谢谢你的回答,如果我的声誉再高一点,我会投赞成票的。不管怎样,谢谢你。@Rick谢谢你的回答,如果我的声誉再高一点,我会投它一票。不管怎样,谢谢你。