ios - Swift infinite loop while iterating array -
i have protocol defined as...
@objc protocol mydatasource : class { var currentreportlistobjects:[reportlistobject] { }; } and code iterate returned array (as nsarray objc) in swift as...
if let reportlistobjects = datasource?.currentreportlistobjects { reportlistobject:reportlistobject? in reportlistobjects { if let report = reportlistobject { // useful 'report' } } } if reportlistobjects array nil, stuck in infinite loop @ for-loop. equally, if there data in array, iterated , 'something useful' done until end of array reached loop not broken , continues infinitely.
what doing wrong? or there blindingly obvious i'm missing here?
you've added lot of optionals here confusing things. here's mean:
for report in datasource?.currentreportlistobjects ?? [] { // useful 'report' } if datasource has value, iterate on currentreportlistobjects. otherwise iterate on empty list.
if did want break out, rather using ??, mean this:
if let reportlistobjects = datasource?.currentreportlistobjects { report in reportlistobjects { println(report) } } there's no need intermediate reportlistobject:reportlistobject? (and that's source of problem, since accepts nil, usual termination of generator).
Comments
Post a Comment