带有键对象的NSDictionary init

时间:2013-09-19 09:46:30

标签: iphone nsdictionary ios7

NSLog(@"1");
NSArray *obj= [NSArray arrayWithObjects:appDel.token, nil];
NSLog(@"2");
NSArray *key= [NSArray arrayWithObjects:@"Token", nil];
NSLog(@"3");
NSDictionary *d= [[NSDictionary alloc] initWithObjects:obj forKeys:key];
NSLog(@"4");
DoSomething();
NSLog(@"5");

需要上述代码的帮助。我似乎在@"4"上崩溃了(它没有打印4)。

Xcode的错误:

'Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (1)'

任何善良的灵魂都能指引我朝着正确的方向前进?它用来工作直到我升级到Xcode 5 :(

2 个答案:

答案 0 :(得分:1)

我非常确定NSLog(@"%@", appDel.token);会显示(null),因为您的令牌是nil。确认appDel.token不是nil,并且您不会收到该错误。 希望这会有所帮助。

答案 1 :(得分:0)

你的appDel.token是零。在项目实用程序中添加以下可重用方法。

-(BOOL)isObjectEmpty:(id)object
{
    return object == nil || ([object respondsToSelector:@selector(length)] && [(NSData *)object length] == 0) || ([object respondsToSelector:@selector(count)] && [(NSArray *)object count] == 0);
}