二十一、从OC到swift

本文详细介绍了从Objective-C过渡到Swift的过程,包括注释标记、条件编译、字符串操作、API可用性检查等方面。通过示例代码展示了Swift的特性,如类和函数的标记、条件编译指令、字符串的插入和删除、多行字符串以及与NSString的交互。此外,还讨论了类继承、协议、多线程开发和资源管理等方面,帮助开发者更好地理解和掌握Swift编程。
摘要由CSDN通过智能技术生成

//1.MARK、TODO、FIXME
        //MARK: 类似于OC的#pragma mark
        //MARK: - 类似于OC的#pragma mark -
        //TODO: 用于标记未完成的任务
        //FIXME: 用于标记待修复的问题
        class Person1 {}
        func test() -> Person1{
            //TODO: 未完成
            //或者
            #warning("undo")
            fatalError() //小技巧:只是想暂时编译通过
        }
        func test2() {
            var age = 10
            //FIXME: 有待修复
            age += 20
        }
        
        class Person {
            //MARK: - 属性
            var age = 0
            var weight = 0
            var height = 0
            //MARK: - 私有方法
            //MARK: 跑步
            private func run1() {}
            private func run2() {}
            //MARK: 走路
            private func walk1() {}
            private func walk2() {}
            //MARK: - 公共方法
            public func eat1() {}
            public func eat2() {}
        }
        
        //2.条件编译
        //操作系统:macOS\iOS\tvOS\watchOS\Linux\Android\Windows\FreeBSD
        #if os(macOS) || os(iOS)
        //CPU架构:i386\x86_64\arm\arm64
        #elseif arch(x86_64) || arch(arm64)
        //swift版本
        #elseif swift(<3) && swift(>=5)
        //模拟器
        #elseif targetEnvironment(simulator)
        //可导入某模块
        #elseif canImport(Foundation)
        #else
        #endif
        
        //3.条件编译
        //Build Setting搜 swift compiler - custom 不用改用系统的
        #if DEBUG
        //debug模式
        #else
        //release模式
        #endif
        
        //Build Setting搜 swift compiler - custom 用自定义的 将Active  Compilation Conditions Debug 下的DEBUG 改为 DEBUGTEST, Other Swift Flags 下的Debug 加 -D OTHER ,其中改的DEBUG和加的OTHER都可随便写
        //以下都是在debug下才会打印
        #if DEBUGTEST
        print("test")
        #endif
        
        #if OTHER
        print("other")
        #endif
        
        //4.打印
        log(20) //ViewController.swift_80_viewDidLoad() 20
        //等价
        log(20, file: #file, line: #line, fn: #function) //ViewController.swift_82_viewDidLoad() 20
        
        //5.系统版本检测
        if #available(iOS 10, macOS 10.12, *) {
            //对于iOS平台只在iOS10及以上版本执行
            //对macOS平台只在macOS 10.12及以上版本执行
            //最后的*表示在其他所有平台都执行
        }
        
        //6.API可用性说明
        @available(iOS 10, macOS 10.15, *)
        class Person0 { }
        class Student0 {
            @available(*, unavailable, renamed: "study")
            func study_() {}
            func study() {}
            
            @available(iOS, deprecated: 11)
            @available(macOS, deprecated: 10.12)
          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值