IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> iOS基础 代码开发中常见助力 -> 正文阅读

[移动开发]iOS基础 代码开发中常见助力

注释方法

Swift中有两种较为常见的注释方法:

  • 用于快捷总览代码功能的注释:
//MARK:-	用于方法管理用的注释
//TODO:-	用于暂缓编写,留作备忘的代码注释

在这里插入图片描述

  • 用于方法功能说明的注释,对于编程中调用代码显示代码功能很方便:
///方法相关功能、属性、调用时间等的备注说明都可以写。

在这里插入图片描述

Log日志输出

在Debug环境下输出日志,而在发布release的时候,就屏蔽掉相关的日志的打印。

日志定位相关

在oc中,想要在日志输出中显示文件、文件名等信息,可以使用以下宏定义。

  • 打印当前文件路径,c字符串: _ _ FILE _ _
  • 打印当前函数或方法 : _ _ FUNCTION _ _
  • 打印当前行号,整数 : _ _ LINE _ _
NSString* fileName = __FILE__;

在Swift中,则:

  • 打印当前文件路径,c字符串: #file
  • 打印当前函数或方法 : #function
  • 打印当前行号,整数 : #line
let fileName = #file

自定义一个通用的日志输出方法

func textlog(){
    mylog(123)
}

//参数全为默认参数,就能够起到,在任何地方打印的都是所在文件的信息。
//对于我们想要打印的信息,由于类型不确定,所以定义为模版Template
//请记住定义模版的格式,需要在方法名后参数列表前,嵌入<T>
//其中模版名可以命名为其他,比如<Template>,但由于苹果中使用的都是<T>
//于是这里也遵循苹果的风格,跟着写成<T>
//然后其不确定类型的参数变量声明为T
func mylog<T>(_ message:T,fileName:String = #file,functionName:String = #function,codeLine:Int = #line){
    print("\n")
    print(fileName + "-" + functionName + "-Line:\(codeLine)")
    print(message)
}

textlog()

如果我们把该日志输出函数写在某个类里面的话,那么就只有该类可以调用,其他类就用不到了。如:

class controllerA{
    func log(){
        mylog(123) //错误
    }
}

class controllerB{
    func mylog<Tlll>(_ message:Tlll,fileName:String = #file,functionName:String = #function,codeLine:Int = #line){
        print("\n")
        print(fileName + "-" + functionName + "-Line:\(codeLine)")
        print(message)
    }
}

在Swift中,只要我们把方法不写在类里面,而是写在与类同一个层级,那么就可以定义成全局函数,成为在任何文件里面都可以用到的全局函数。即如:

class controllerA{
    func log(){
        mylog(123)//正确调用全局函数
    }
}

class controllerB{
    func log(){
        mylog("哈哈哈哈")//正确调用全局函数
    }
}

class controllerC{
    func log(){
        mylog(180.5)//正确调用全局函数
    }
}

func mylog<Tlll>(_ message:Tlll,fileName:String = #file,functionName:String = #function,codeLine:Int = #line){
    print("\n")
    print(fileName + "-" + functionName + "-Line:\(codeLine)")
    print(message)
}

全局函数没有规定写在哪里,可以在controllerA.Swift文件中,也可以在controllerB.Swift中,但为了方便管理与查找修改,还是创建一个专门管理的Swift文件比较好。

在Swift中没有宏定义,所以以前在OC中是使用宏定义进行Debug版本和Release版本的切换,在Swift中要先修改项目配置文件中的SwiftFlags。

在这里插入图片描述
然后点开Flags,点击Debug项目,为其添加一个标记,其中“-D”是固定写法,其后所跟着的“DEBUG”是你想要添加的标记,这么写后,编译器在编译的时候,如果遇到这个标记,在Debug的情况下才会进行编译,否则则不编译。
在这里插入图片描述然后接着我们就可以在代码中使用:

func Log<T>(_ message:T,fileName:String = #file,codeLine:Int = #line){
    #if DEBUG
    print("\n")
    print("\(fileName) - Line:\(codeLine)")
    print(message)
    #endif
}

来控制在Debug环境下输出日志,而在发布环境下不输出日志。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:20:14  更:2022-05-24 18:20:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:08:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码