What is the correct way to fix C-style for a statement for the code below?
I am currently getting this war:
C-style for approval is outdated and will be removed in a future version of Swift
var ifaddr : UnsafeMutablePointer<ifaddrs> = nil if getifaddrs(&ifaddr) == 0 { // Warning for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) { // Do some stuff... } }
You can convert a loop forto a loop while:
for
while
var ptr = ifaddr while ptr != nil { // Do stuff ptr = ptr.memory.ifa_next }
Here is the version that worked for me.
var ptr = ifaddr repeat { ptr = ptr.memory.ifa_next if ptr != nil { ... } } while ptr != nil
Swift 3 sequence , " ". :
sequence
var ifaddr : UnsafeMutablePointer<ifaddrs>? if getifaddrs(&ifaddr) == 0 { if let firstAddr = ifaddr { for ptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) { // ... } } freeifaddrs(ifaddr) }