【发布时间】:2014-11-17 04:49:36
【问题描述】:
我正在努力让 iOS 应用程序连接到运行 OpenTok 的节点服务器。当我硬编码值时一切正常,但我想要动态会话和令牌,因此我的问题。
我能够在服务器端成功创建一个令牌,它看起来像:
[
{
"_id": "*******",
"token": "***********************",
"sessionId": "********",
}
]
我也可以在 iOS 应用中成功检索它:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://path/to/json"]];
NSData *theData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:nil];
NSMutableArray *newJSON = [NSJSONSerialization JSONObjectWithData:theData options:NSJSONReadingMutableContainers error:nil];
NSString* kToken = [newJSON valueForKey:@"sessionId"];
NSString* kSessionId = [newJSON valueForKey:@"token"];
我可以将值打印到控制台:
NSLog(@"Value of kToken = %@", kToken);
NSLog(@"Value of kSessionId = %@", kSessionId);
所以我知道它被正确读取,但无论如何我仍然会收到错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI length]: unrecognized selector sent to instance 0x14d97950
我对 iOS 比较陌生,所以也许我在这里咬的东西比我能咀嚼的还多,但任何正确方向的建议都会很棒。文档中似乎没有关于如何通过 iOS 从您的服务器正确获取令牌的任何内容。
【问题讨论】:
-
你能告诉我你的输出json吗
-
NSArray 不响应长度,它响应计数,这意味着您尝试获取数组的长度,这就是您收到此错误的原因
标签: ios json exception unrecognized-selector