在学习swift的一些笔记(八)
2015-11-19 本文已影响96人
曾迦
Swift中的接口
public protocol RunProntocol:NSObjectProtocol {
var nameRun:String { get };
// mutating :加上修饰符 修改结构体
func run()
}
如上就是一个简单的接口定义遵守这个接口时一定要把接口内的内容实现:
class ViewController: UIViewController,RunProntocol{}
Swift中的类扩展(分类)
extension NSArray {
public convenience init(object anObject: AnyObject)
public convenience init(array: [AnyObject])
public convenience init(array: [AnyObject], copyItems flag: Bool)
public convenience init?(contentsOfFile path: String)
public convenience init?(contentsOfURL url: NSURL)
}
最简单的 系统的数组的类扩展extension
关键字 + 类名 + {}
自己写一个
extension UIView{
// 获取控件最右边的点得值
func right() -> (CGFloat){
return self.frame.maxX
}
// 根据控件设置新的最右边的点值来改变x的值
func setRight(right:CGFloat){
let newRight = right - self.frame.maxX
let rect:CGRect = self.frame
self.frame = CGRect(x: rect.minX+newRight, y: rect.minY, width: rect.width, height: rect.height)
}
}
// 调用
let view:UIView = UIView()
view.frame = CGRect(x: 40, y: 40, width: 40, height: 40);
// 调用自己写的类扩展方法
view.setRight(200)
view.backgroundColor = UIColor.blueColor()
self.view.addSubview(view)
泛型
func numTest<T>(var a:T,var b:T){
print("交换前a的值\(a),b的值\(b)");
let temp:T = a ;
a = b;
b = temp
print("交换后a的值\(a),b的值\(b)");
}
泛型函数<>中写代替的类型,不过大多数使用时都要遵守一个协议,还有泛型类,结构体,枚举