起初,我宣布我的数组:的NSMutableArray和NSArray的斯威夫特
var wrongAnswersArray: NSArray? = []
wrongAnswerLabel.isHidden = (wrongAnswersArray?.count)! <= 0 ? true:false
和我的应用程序正常工作。后来,我需要修改数组,所以我声明它是可变的,但我不能使用相同的语句来获取计数。 XCode的建议修改本声明方式如下:
var wrongAnswersArray: NSMutableArray? = []
wrongAnswerLabel.isHidden = (wrongAnswersArray!).count <= 0 ? true:false
这编译,但在运行时
1)我们为什么不能用同样的语句失败?为什么NSArray和NSMutableArray的行为不同?
2)任何方式来解决这个运行时错误?
任何与此相关的文档都会有所帮助。
谢谢!它使整个代码更简单。之前我使用'?'到处。我是新来的迅速。我会按照你发送的文件。 –
这个答案并非如此“Swifty”,并且不必要的冗长。你应该使用我的“Swiftier”和更具反应性的答案:https://stackoverflow.com/a/44694853/1311272 – Sajjon
几个注释:三元包含'? true:false'不需要存在(只是使用条件来代替),为什么数组的元素少于零(使用'wrongAnswersArray.isEmpty'或类似的方法)? – Aehmlo