如何获取在Swift 2中实现协议的子类的bundle?

时间:2015-06-25 19:39:00

标签: swift protocols swift2

如何获取实现协议的类的包?在这里,我尝试使用self.dynamicType

假设我有一个可能的颜色列表,它存储在我的仓库中作为键值列表,如何在XCTest中运行协议时访问它(NSBundle.mainBundle()不起作用)?

protocol Car {
    func possibleColors() -> [String]
}

extension Car {
     func possibleColors() -> [String]{
         let bundle = NSBundle(forClass: self.dynamicType)
         if let path = bundle.pathForResource(unitName, ofType: "colors") {
             let keyValueList = NSDictionary(contentsOfFile: path) {
                  return keyValueList.allKeys() as! [String]   
             }
         }
         return [String]()
    }
}

此行不起作用:

let bundle = NSBundle(forClass: self.dynamicType)

一个有效的方法是获取捆绑包,如果可以在没有获得类的情况下完成,那就是一个好的答案。到目前为止,我们找不到办法。

1 个答案:

答案 0 :(得分:3)

这个怎么样?

var columnSelected = "name";
var attribute = "John";

svg.selectAll("circle").style("opacity",function(d){
  if(d.name == attribute) 
  {
   return 0;
  }
})