我怎样才能在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 } 

并注意StringNSString之间的import Foundation