这是我的代码:
exec-maven-plugin
我得到nil argLine
,所以只有我检查是否获得了nil值,然后当涉及回调时,它在这里graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','g'))
崩溃。因为它没有附加值。我不知道为什么,但是无法实现。任何解决方案都将有所帮助。
答案 0 :(得分:1)
检查<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<time dir="auto" class="timeago" datetime="2018-07-28 21:08:57"></time>
是否被踩进去。
此时,forEach
或pro
可能为nil,而对nil集合未调用pro.combodata
。
可能您正在尝试访问forEach
之后的[0]
索引元素。
答案 1 :(得分:0)
当可选数组为nil时,调用append不会执行任何操作,您需要先对其进行初始化
if (pro?.combodata == nil) {
pro?.combodata = []
pro?.combodata?.append(com)
}
答案 2 :(得分:0)
尝试使用此:
guard let pro = Mapper<SubCategoryProducts>().map(JSONString: dt) else { return }
let com = ComboData()
com.price = pro.Price ?? 0
com.type = pro.type ?? ""
com.amount = pro.quantity ?? ""
if (pro.combodata == nil) {
pro.combodata = [com]
}
问题在于,当combodata
中的pro
为零时,您试图附加对象,这意味着您正在尝试nil.append()
,而该对象应该为[ComboData].append()
。 / p>
我希望这会对您有所帮助。
答案 3 :(得分:0)
执行self.arrayForCombo.removeAll()
语句后,arrayForCombo
变为空。如果您的pro?.combodata
是nil
,则forEach
语句将无法执行。因此,您的arrayForCombo
还是空的。
但是,在callBack
语句中,您强制尝试访问arrayForCombo
的第一项,无论是否为空。这就是为什么数组为空时会崩溃的原因。
您可以安全地绕过这样的问题:
if let firstItem = arrayForCombo.first {
callback(firstItem)
}