我怎样才能在Swift中表示for循环的关键是NSString?
在这里我有一个for循环。 我知道我存储NSStrings。 我如何指定attributeName
的types? 我不想在循环内部遍地写入,那(relationshipName as NSString)
。
for attributeName in managedObject.entity.attributesByName.keys { }
UPDATE
如果我添加[String]
和for循环声明,我得到以下错误:
UPDATE
作为string也有问题
您必须将由attributesByName
返回的字典转换为真正的键/值types:
let attributes = managedObject.entity.attributesByName as [String: NSAttributeDescription] for attributeName in attributes.keys { // attributeName has the type String // ... }
要么
let attributes = managedObject.entity.attributesByName as [NSString: NSAttributeDescription] for attributeName in attributes.keys { // attributeName has the type NSString // ... }
你可以将由ObjC API(默认为[AnyObject]!
)返回的NSArray
转换为一个types数组:
for attributeName in managedObject.entity.attributesByName.keys as [String] { // ... }
for attributeName: String in managedObject.entity.attributesByName.keys { }
你可以显式地给attributeName
一个像attributeName:NSString
这样的types
for attributeName:NSString in managedObject.entity.attributesByName.keys { attributeName.length //here attributeName will work as NSString }
并注意String
和NSString
之间的import Foundation