学习swift总结

as! 和 as? 用法

  • 某类型的一个常量或变量可能在幕后实际上属于一个子类。当确定是这种情况时,你可以尝试向下转到它的子类型,用类型转换操作符(as? 或 as!)。
  • 当你不确定向下转型可以成功时,用类型转换的条件形式( as? )。条件形式的类型转换总是返回一个可选值,并且若下转是不可能的,可选值将是 nil 。
  • 只有你可以确定向下转型一定会成功时,才使用强制形式( as! )。当你试图向下转型为一个不正确的类型时,强制形式的类型转换会触发一个运行时错误。

宏定义

  • 简单的宏定义直接使用let 加常量名即可
public let ScreenRect = UIScreen.main.bounds
public let ScreenWidth = UIScreen.main.bounds.size.width
public let ScreenHeight = UIScreen.main.bounds.size.height
  • 有些需要传值的宏定义就只能用方法来取代了
func ViewX(view:UIView) -> Float {
    return Float(view.frame.origin.x)
}
func ViewY(view:UIView) -> Float {
    return Float(view.frame.origin.y)
}
func ViewWidth(view:UIView) -> Float {
    return Float(view.frame.size.width)
}
func ViewHeight(view:UIView) -> Float {
    return Float(view.frame.size.height)
}

判断字符串是否为空

swift已经提供了方法,不用像以前一样判断是否是nil或者NSNull类型,只需要用到str.isEmpty就可以了

let str = "asdasd" 
if str.isEmpty {
     print("字符串为空")  
}else{
     print("")
}

swift五种修饰符fileprivate private internal public open

  • private,只允许在当前类中调用,不包括 Extension
    用 private 修饰的属性和方法不可以被代码域之外的地方访问
    下面这段代码会报错,在类Bbbb中无法访问类Aaaa中的test方法
class Aaaa {
    private func test(){}
}

class Bbbb:Aaaa {
    func show(){
        let a = A.init()
        a.test()
    }
}
  • fileprivate其修饰的属性或者方法只能在当前的 Swift 源文件里可以访问
    即在同一个文件中,所有的 fileprivate 方法属性都是可以访问到的
    上面的代码如果将private修改为fileprivate就不会报错了
  • internal,默认访问,internal修饰的属性或方法在源代码所在的整个模块都可以访问
    如果是框架或库代码,在整个框架内部都可以访问,在框架外部则不可以访问
    如果是APP代码,则在整个APP内部都可以访问
  • public 修饰的属性或者方法可以在其他作用域被访问
    但不能在重载 override 中被访问
    也不能在继承方法中的 Extension 中被访问
  • open 修饰的属性或者方法可以在其他作用域被访问
    修饰的属性或者方法可以在其他作用域被继承或重载 override
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,523评论 0 4
  • 扩展 扩展就是向一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类...
    cht005288阅读 475评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 3月20日的事情 18:00 上周五正准备加班,和家里面打了电话闲聊了几句,挂了电话。 10多分钟后叔叔打来电话,...
    一阵寂寞奔跑阅读 332评论 0 2
  • 上午人在嘉兴,匆忙赶往车站奔赴宁波。 有个不好的习惯就是老是压着点赶车赶飞机。 今天的点压的略紧,但是按照正常的速...
    好雨知时节的小窝阅读 217评论 0 0