swif4基础学习(7)-其它

import UIKit

var str = "Hello, playground"

//逃逸闭包
//闭包做为函数的参数传递时,可能会在函数体结束后被调用,这个闭包逃离了这个函数体的作用域,那么我们就说这个闭包是逃逸型的闭包
func testClosure(closure:@escaping ()->Void){
    
    print("test")
    
    //这个闭包的在主线程中调用
    DispatchQueue.main.async {
        closure()
    }
   
}

testClosure {
    print("111")
}

//defer 延迟执行

func TestFuncDefer()->Int{
    //执行顺序是倒叙
    print("111")
    defer {
        sleeps()
    }
    print("333")
    return 3
}

func sleeps(){
    print("222")
}

TestFuncDefer()

//使用案例
//
let _testLock = NSLock.init()
var _testCount:Int = 0

var testCount:Int{
    set{
       _testLock.lock()
        defer {
             _testLock.unlock()
        }
        _testCount = newValue
       
    }
    get{
        _testLock.lock()
        defer {
             _testLock.unlock()
        }
        return _testCount
    }
}



关键字

 1. private < fileprive < internal < public < open 访问控制权限
 2. private 访问级别,所修饰的属性和方法 只能在当前类中访问
 3.fileprive 访问级别,.............. .................当前的swift 源文件荔可以访问
 4.internal  访问级别...................在源代码所在的整个模块都可以访问
    4.1如果是框架或者库代码,则在整个框架内都可以访问,框架由外部代码所引用时,则不可以访问
 5. public         可以被任何人访问,但其他模块中不可以被override和继承,在当前模块是可以的
 6. open  什么都行
 

发布了47 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/a1034386099/article/details/88848822