美文网首页关于学习这件事程序员
在学习swift的一些笔记(八)

在学习swift的一些笔记(八)

作者: 曾迦 | 来源:发表于2015-11-19 14:00 被阅读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)");
        }
    

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

    相关文章

      网友评论

        本文标题:在学习swift的一些笔记(八)

        本文链接:https://www.haomeiwen.com/subject/gbuhhttx.html