let classString = NSStringFromClass(self) asNSString
let view = NSBundle.mainBundle().loadNibNamed(classString.pathExtension, owner: nil, options: nil).first as! UIView
return view
}
}
这边使用NSStringFromClass(self) as NSString,由类取得类名的字符串,这边使用NSString,主要是swift的String方法我没有找到简便的方法来实现我的需求,比如现在的一个控件叫做CRLabel,而项目名为:Test01,那么由上面的操作,classString的值就会是Test01.CRLabel,在这里面Test01为命名空间,意思就是Test01命名空间下面的CRLabel文件,由于是去加载XIB文件,我们只需要后面CRLabel部分,而不需要命名空间,所以我们需要做截取工作,而.pathExtension方法正好满足我们的需求,故有了上面的写法。