iOS 8:NSDictionary 0键/值对

时间:2014-09-16 10:13:01

标签: objective-c iphone nsdictionary ios8

信不信由你,这是真实的案例。我正在我的应用中创建一个简单的NSDictionary,它运行正常。今天我安装了Xcode 6 beta并尝试使用iOS 8运行我的应用。NSDictionary返回0 key/value pairs,而我可以看到相同的字典在iOS 6和iOS 7中正常工作。这是代码那本字典,

NSDictionary *croppedPhoto = [[NSDictionary alloc] initWithObjectsAndKeys:myImageView.image,@"original",imageView.image,@"cropped", nil];  

注意: myImageViewimageView都是UIImageView,我可以在调试模式下看到图像。
我不知道iOS 8中有关NSDictionary的内容是否发生了变化。提前感谢任何形式的帮助。感谢。

2 个答案:

答案 0 :(得分:4)

更改此代码,看看会发生什么......

NSDictionary *croppedPhoto = @{
    @"original" : myImageView.image,
    @"cropped"  : imageView.image
};

无论如何你应该使用这种格式。它已经存在了2年了。

此外,它还包括所有对象都不为零的运行时验证。

如果myImageView.image为零,那么您的代码将返回一个没有键或对象的字典,这种现代语法会崩溃,显示它是零。

答案 1 :(得分:1)

如果使用现代语法,它会起作用吗?

NSDictionary *croppedPhoto = @{
    @"original": myImageView.image,
    @"cropped":  imageView.image
}

(也就是说,承认它,更具可读性)。