我出错了,NSInvalidArgumentException,这是我的模型类
+(NSArray *)users
{
NSDictionary *user1 = @{@"username" : @"master photographer", @"email" : @"worldtravel@me.com", @"password" : @"drowssap", @"age" : @24, @"profilePicture" : [UIImage imageNamed:@"person1.jpeg"]};
NSDictionary *user2 = @{@"username" : @"Lots of tots", @"email" : @"otterskips@me.com", @"password" : @"icecreamrocks", @"age" : @65, @"profilePicture" : [UIImage imageNamed:@"person2.jpeg"]};
NSDictionary *user3 = @{@"username" : @"iTechie", @"email" : @"theRealApple@me.com", @"password" : @"infiniteloop", @"age" : @30, @"profilePicture" : [UIImage imageNamed:@"person3.jpeg"]};
NSDictionary *user4 = @{@"username" : @"Royal", @"email" : @"king@me.com", @"password" : @"IGotAPalace", @"age" : @0, @"profilePicture" : [UIImage imageNamed:@"person4.jpeg"]};
NSArray *userArray = @[user1, user2, user3, user4];
return userArray;
}
@end这是我的观点
self.users = [DMZUserData users];
NSLog(@"%@", self.users);发布于 2014-04-25 16:57:18
此错误意味着您正在尝试将nil放入字典(不允许)。因为您正在用字符串文字构建字典,所以不可能是nil。这意味着问题在于您的一个或多个图像。
试试这个来帮助找出问题所在:
+(NSArray *)users
{
UIImage *image1 = [UIImage imageNamed:@"person1.jpeg"];
UIImage *image2 = [UIImage imageNamed:@"person2.jpeg"];
UIImage *image3 = [UIImage imageNamed:@"person3.jpeg"];
UIImage *image4 = [UIImage imageNamed:@"person4.jpeg"];
NSDictionary *user1 = @{@"username" : @"master photographer", @"email" : @"worldtravel@me.com", @"password" : @"drowssap", @"age" : @24, @"profilePicture" : image1 };
NSDictionary *user2 = @{@"username" : @"Lots of tots", @"email" : @"otterskips@me.com", @"password" : @"icecreamrocks", @"age" : @65, @"profilePicture" : image2 };
NSDictionary *user3 = @{@"username" : @"iTechie", @"email" : @"theRealApple@me.com", @"password" : @"infiniteloop", @"age" : @30, @"profilePicture" : image3 };
NSDictionary *user4 = @{@"username" : @"Royal", @"email" : @"king@me.com", @"password" : @"IGotAPalace", @"age" : @0, @"profilePicture" : image4 };
NSArray *userArray = @[user1, user2, user3, user4];
return userArray;
}现在,您可以使用调试器,查看image1、image2、image3或image4是nil还是为每个nil添加NSLog语句。
请记住,文件名是区分大小写的,所以请确保传递给imageNamed:的名称与真正的文件名完全匹配。还要验证图像是否具有扩展jpeg,而不是jpg。确保映像正在打包在资源包中。
发布于 2014-04-25 16:59:42
您要创建的UIImages之一是零。请添加以下代码作为方法+(NSArray *)用户的第一行
NSAssert([UIImage imageNamed:@"person1.jpeg"] != nil, @"Person 1 image does not exist");
NSAssert([UIImage imageNamed:@"person2.jpeg"] != nil, @"Person 2 image does not exist");
NSAssert([UIImage imageNamed:@"person3.jpeg"] != nil, @"Person 3 image does not exist");
NSAssert([UIImage imageNamed:@"person4.jpeg"] != nil, @"Person 4 image does not exist");这段代码片段将在控制台上打印不存在的图像。请在调试时运行,让我们看看断言的结果是什么。
希望这能有所帮助!
发布于 2014-07-14 23:29:20
更好的解决方法可能是让"NSDictionary“像这样:
NSDictionary *user1 = [NSDictionary dictionaryWithObjectsAndKeys: my obj & key here, nil];https://stackoverflow.com/questions/23298615
复制相似问题