附加一个带有数组值的 NSSet
append a NSSet with array values
如何将我的 HKObjectType 附加到 NSSet 中。
它总是 returns 空的。还有更好的办法吗???
func getPermsFromOptions(_ options: NSArray) -> NSSet {
var readPermSet = NSSet()
var optionKey: String
var val: HKObjectType
for i in options{
optionKey = i as! String
val = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: optionKey))!
readPermSet.adding(val)
print("set", readPermSet) //always empty
}
return readPermSet;
}
readPermSet.adding(val)
添加不是一种变异方法,它returns一个添加了另一个值的新集合
试试:
var readPermSet: Set<HKObjectType> = []
和
readPermSet.insert(val)
您不能添加到 NSSet
。您 可以 添加到 NSMutableSet
:
var readPermSet = NSMutableSet()
...
readPermSet.add(val)
adding
是 Swift 的一种方法,即 returns 一个包含所有相同元素的新集合,加上新元素.您在这里忽略了它的 return 值。
既然你在Swift,为什么不使用Set<HKObjectType>
和[String]
呢?
func getPermsFromOptions(_ options: [String]) -> Set<HKObjectType> {
var readPermSet = Set<HKObjectType>()
for optionKey in options {
let val = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: optionKey))!
readPermSet.insert(val)
print("set", readPermSet)
}
return readPermSet;
}
如何将我的 HKObjectType 附加到 NSSet 中。
它总是 returns 空的。还有更好的办法吗???
func getPermsFromOptions(_ options: NSArray) -> NSSet {
var readPermSet = NSSet()
var optionKey: String
var val: HKObjectType
for i in options{
optionKey = i as! String
val = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: optionKey))!
readPermSet.adding(val)
print("set", readPermSet) //always empty
}
return readPermSet;
}
readPermSet.adding(val)
添加不是一种变异方法,它returns一个添加了另一个值的新集合
试试:
var readPermSet: Set<HKObjectType> = []
和
readPermSet.insert(val)
您不能添加到 NSSet
。您 可以 添加到 NSMutableSet
:
var readPermSet = NSMutableSet()
...
readPermSet.add(val)
adding
是 Swift 的一种方法,即 returns 一个包含所有相同元素的新集合,加上新元素.您在这里忽略了它的 return 值。
既然你在Swift,为什么不使用Set<HKObjectType>
和[String]
呢?
func getPermsFromOptions(_ options: [String]) -> Set<HKObjectType> {
var readPermSet = Set<HKObjectType>()
for optionKey in options {
let val = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: optionKey))!
readPermSet.insert(val)
print("set", readPermSet)
}
return readPermSet;
}