关于学习这件事程序员

在学习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)");
    }

泛型函数<>中写代替的类型,不过大多数使用时都要遵守一个协议,还有泛型类,结构体,枚举

上一篇下一篇

猜你喜欢

热点阅读