信不信由你,这是真实的案例。我正在我的应用中创建一个简单的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];
注意: myImageView
和imageView
都是UIImageView
,我可以在调试模式下看到图像。
我不知道iOS 8
中有关NSDictionary
的内容是否发生了变化。提前感谢任何形式的帮助。感谢。
答案 0 :(得分:4)
更改此代码,看看会发生什么......
NSDictionary *croppedPhoto = @{
@"original" : myImageView.image,
@"cropped" : imageView.image
};
无论如何你应该使用这种格式。它已经存在了2年了。
此外,它还包括所有对象都不为零的运行时验证。
如果myImageView.image
为零,那么您的代码将返回一个没有键或对象的字典,这种现代语法会崩溃,显示它是零。
答案 1 :(得分:1)
如果使用现代语法,它会起作用吗?
NSDictionary *croppedPhoto = @{
@"original": myImageView.image,
@"cropped": imageView.image
}
(也就是说,承认它,更具可读性)。