iOS - Swift NSEnumerator 迭代器

时间:2023-03-09 02:16:02
iOS - Swift NSEnumerator		迭代器

前言

	public class NSEnumerator : NSObject, NSFastEnumeration

1、迭代器

	let arr:NSArray = ["bei", "jing", "huan", "ying", "nin"]
let dic:NSDictionary = ["key1":"value1", "key2":"value2", "key3":"value3"] // 创建数组 正序 迭代器
let arrEnumer1:NSEnumerator = arr.objectEnumerator() // 创建数组 反序 迭代器
let arrEnumer2:NSEnumerator = arr.reverseObjectEnumerator() // 创建字典 key 迭代器
let dicKeyEnumer:NSEnumerator = dic.keyEnumerator() // 创建字典 对象 迭代器
let dicObjEnumer:NSEnumerator = dic.objectEnumerator() // 获取迭代器中下一个对象
var obj: AnyObject? = arrEnumer1.nextObject() obj = arrEnumer1.nextObject() // 获取迭代器中所有对象
let array = arrEnumer2.allObjects

2、数组用迭代器遍历

	let arr:NSArray = ["bei", "jing", "huan", "ying", "ni"]

	let enu1:NSEnumerator = arr.objectEnumerator()
let enu2:NSEnumerator = arr.reverseObjectEnumerator() // AnyObject 后不要加 ?,否则会导致一直循环
while let obj:AnyObject = enu1.nextObject() { print(obj)
} // AnyObject 后不要加 ?,否则会导致一直循环
while let obj:AnyObject = enu2.nextObject() { print(obj)
}

3、集合用迭代器遍历

	let nsSet:NSSet = [2, 4, 6, 8]

	let enu:NSEnumerator = nsSet.objectEnumerator()

	// AnyObject 后不要加 ?,否则会导致一直循环
while let obj:AnyObject = enu.nextObject() { print(obj)
}

4、字典用迭代器遍历

	let nsDic:NSDictionary = NSDictionary(dictionary: ["key1":1, "key2":2, "key3":3, "key4":4])

	// key 迭代器
let keyEnu:NSEnumerator = nsDic.keyEnumerator() while let key:AnyObject = keyEnu.nextObject() { print(nsDic.objectForKey(key))
} // 对象迭代器
let objEnu:NSEnumerator = nsDic.objectEnumerator() while let obj:AnyObject = objEnu.nextObject() { print(obj)
}