
swift
文章平均质量分 77
Poison老师
写了十多年代码,也创业了多次,从底层到应用层
展开
-
xcode14安装swift package设置github账户token
登录github点击上面菜单自己的头像,settings->Developer settings->Personal access tokens->Tokens (classic)->Generate new token (classic)打开xcode点击左上角xcode ->Settings->左下角的+加号-> GitHub->Continue->填写github账号到Account中.复制刚才的token到token中.日期选择永久No expiration。Note名字填写xcode。原创 2023-03-08 13:42:49 · 1654 阅读 · 2 评论 -
swift中performSegue连线的使用storyboard加载多个控制器方法和demo下载
文章目录在storyboard中创建连线使用连线本控制器跳转其他控制器跳转本来用segue连线的方法几年前就不用了.但是最近接了一个项目,里面还在用storyboard,一个storyboard里面有十多个控制器,而且全都是用连线跳转的控制器,想要重做一个控制器就要把里面的所有连线performSegue都整明白.在storyboard中创建连线方法如下图:在一个按钮上,或者其他能创建时间的上面按住ctrl键,然后拖拽鼠标左键,连线到另一个控制器然后如下图,点击连线,给连线输入id:使用连线原创 2022-01-26 09:13:40 · 1161 阅读 · 0 评论 -
swift moya框架+rxswift+handyjson+SwiftyJSON封装和使用教程
文章目录target的作用插件plugin的基本使用添加token封装了一个可以判断token和加载带转菊花的pluginProvider的作用调用方法moya是把alamofire再封装的一个swift 网络请求框架.他和原生的alamofire和 AFNetworking 的区别是.他多了一个 Target和一个plugintarget的作用一个target可以放多个接口,并且每个接口都可以单独指定url和请求类型,和参数类型.利用的枚举类型下面代码展示target的用法.先定义一个 enum原创 2022-01-18 10:27:58 · 2715 阅读 · 0 评论 -
HandyJSON的swift json解析第三方使用教程
文章目录安装方法让模型遵守协议HandyJSON,嵌套模型的子模型也要继承HandyJSON解析json数据从json下一个子节点进行解析安装方法podfile里面pod 'HandyJSON'然后pod install让模型遵守协议HandyJSON,嵌套模型的子模型也要继承HandyJSON下面代码,只要类遵守HandyJSON协议就可以使用了不需要遵守NSObject也可以使用我这里继承NSObject是为了重写description变两个打印成员,目的是你print()这个对象的原创 2022-01-07 16:15:51 · 3265 阅读 · 0 评论 -
swift的WKWebView跟js互动调用js方法和弹出alert打开新窗口禁用手势等教程
目录网页端的js给手机端发js方法的代码格式:swift端接收js方法需要做的事给WKWebView添加要捕获js的方法名捕获js方法swift端接收js的alert遵守WKUIDelegate设置代理在代理方法里面写入接收alert的后续代码swift 执行 js.open方法打开新窗口遵守WKUIDelegate代理重写代理方法,并且打开新的url直接用swift执行js例如下面代码是通过执行js,禁用WKWebView的缩放手势今天做公司项目网页程序里面调用手机的截图.跟公司网页端的同事合作完成了功原创 2021-11-12 14:58:57 · 4247 阅读 · 0 评论 -
ios 关于reloadData和reloadRows执行后生命周期方法执行顺序
目录执行全局刷新reloadData()之后执行局部刷新.reloadRows(at: [indexPath], with: .none)今天重新对tableView 里面系统原生的数据方法执行顺序,进行一次梳理,主要说明下面4个方法的执行顺序下面是swift的3个方法.oc的执行顺序一样.func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloatfunc tableView原创 2021-08-26 10:57:52 · 1126 阅读 · 0 评论 -
NSArray element failed to match the Swift Array Element type错误的解决方法
在用swift调用yy_model生成的嵌套数组模型的时候回报错如下错误的解决方法:Thread 1: Precondition failed: NSArray element failed to match the Swift Array Element type翻译过来就是:NSArray 元素匹配swift数组元素错误因为在定义成员变量的时候定义如下:@objc var imgs:[CircleItemImgs] = [CircleItemImgs]() 这个作为数据模型,使用yy_mo原创 2021-08-23 11:00:47 · 1561 阅读 · 0 评论 -
ios charts图形插件 垂直柱形图barView swift使用教程加封装(赋demo)
目录运行效果安装基本操作(未封装)创建视图生成数据设置其他数据封装后的2个不同的调用代码封装代码下载运行效果安装使用cocoa pod 安装新建 podfile文件里面添加pod ‘Charts’pod ‘SnapKit’, ‘~> 5.0.0’SnapKit可以不加,但是我封装的代码里面要用约束布局,所以添加snipkit在要使用的地方 引入库:import Chartsimport SnapKit基本操作(未封装)创建视图var barView = BarChart原创 2021-07-27 17:29:16 · 661 阅读 · 1 评论 -
ios charts图形插件 饼图pieView swift使用教程加封装(赋demo)
目录运行效果安装饼图创建设置UI设置数据整体封装代码调用代码demo下载地址点击我运行效果安装使用cocoa pod 安装新建 podfile文件里面添加pod ‘Charts’pod ‘SnapKit’, ‘~> 5.0.0’SnapKit可以不加,但是我封装的代码里面要用约束布局,所以添加snipkit在要使用的地方 引入库:import Chartsimport SnapKit饼图创建var pieV = PieChartView()设置UI view.add原创 2021-07-26 16:01:32 · 701 阅读 · 0 评论 -
swift装逼技巧之:如何使用map生成数组比for少写2行代码(附demo代码)
目录先说结论:map用3行代码解决for循环5行代码的事,相当于效率提升了40%学而不用不会也 (我说的)下面列举oc思路 使用for in 生成一个数组:模拟网上接口传过来的json数组传统for in循环处理数组 纵向至少5行代码for in方法1: 使用下标[]遍历数组(代码太长不推荐)for in 方法2:横向代码省略了下标[i],短了一点使用map组成数组map普通写法1:纵向比for in少些2行代码map省略写法:使用$0 和省略 returnmap,比for in 生成新数组省略行数的对比总原创 2021-07-26 14:24:50 · 601 阅读 · 0 评论 -
swift和c++相互调用方法1教程附demo
目录上一个教程讲了在xcode中,用c来调用c++代码,是为了这篇教程做铺垫,因为swift调用c++的方法1,就是用swift调用c代码整体思路:因为swift不能直接调用c++,但是可以调用c,所以我们让swift调用c,再用c调用c++.强烈建议查看上面的文章,里面有c调用c++的原理说明.swift调用 C++ 方法建立桥接文件swift中的调用上一个教程讲了在xcode中,用c来调用c++代码,是为了这篇教程做铺垫,因为swift调用c++的方法1,就是用swift调用c代码#传送门上一个我写原创 2021-06-26 14:24:45 · 3462 阅读 · 0 评论 -
extern “C“的作用:c语言调用c++代码中普通函数和类的方法教程(符xcode编译器演示demo)
目录前言extern "C"的作用利用extern "C"给c++ 函数做声明,然后再定义函数,让.c文件可以找到c++的函数c语言调用c++中的全局函数,这里不包含类的概念,直接用前言这篇教程主要讲解了,c语言,如何调用c++的类和类方法,目的是为了用swift调用c++代码的教程做铺垫,因为swift无法直接调动c++代码,但是可以调用c语言代码和oc代码,所以先做了这个教程.作为swift调用c++代码其中一种方法的铺垫教程extern "C"的作用首先这个 extern “C” {}是告诉原创 2021-06-26 13:16:00 · 2323 阅读 · 1 评论 -
swift和c语言互相调用教程
目录前言swift调用c语言的方法.建立桥接文件前言swift中可以直接调用c语言,只要包含c语言的.h文件就可以了.swift调用c语言的方法.直接包含.h文件, .h文件中写函数声明//// CFn.h// swiftCDemo//// Created by 谭迪文 on 2021/6/25.//#ifndef CFn_h#define CFn_h#include <stdio.h>void printTest1(void);int getRandom原创 2021-06-25 16:15:27 · 3604 阅读 · 3 评论 -
ios swift 和 objectivec present方法弹出以后连续dismiss多次教程
这里写目录标题总结规律连续2次dimss演示效果swift 方法oc方法连续dismiss3次效果swift 代码oc代码总结规律想要dismiss几次,就用几次presentingViewController 然后调用dismiss,代码演示如下连续2次dimss演示效果swift 方法presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil)oc方法[self.原创 2021-06-04 16:19:56 · 977 阅读 · 0 评论 -
swift 循环滚动视图水平垂直
目录前言前言因为之前工作做得快,提前把以后要做的首页功能看了一遍需求,发现有垂直循环滚动的页面,而且页面除了点击图片,能弹出页面,点击旁边的的区域也能弹出页面,所以封装了,可以水平,垂直,循环滚动,可以自定义页面的工具类.效果图如下:#使用方法直接拖拽这2个文件到项目中,然后使用:TdwCircleView.swiftTdwCircleViewCell.swiftlet tdwCircleV2 = TdwCircleView()//设置成成员变量,防止被释放let vc1 = VC1()原创 2021-05-29 16:36:06 · 539 阅读 · 0 评论 -
UIScrollView使用SnapKit 自动约束设置教程
这里写目录标题前言核心思想先从最简单的单个内容视图来讲解设置多个contentViewdemo代码下载地址:[ 点击这里下载](https://download.csdn.net/download/boildoctor/18935858)前言因为最近要封装一个轮播图的工具类,网上只有自动轮播图片的,但是我想封装一个能轮播所有类型UIView的,所以要用到滚动视图,之前都是用xib设置ScrollView的AutoLayout,用纯代码工作量太大,所以不用,但是要封装起来给别人用,就得用到纯代码,所以今天原创 2021-05-21 15:33:54 · 2251 阅读 · 8 评论 -
ios UIScrollView滚动视图在视图最上面的时候存在空隙的解决方法教程
目录先看一下不移动状态栏直接让滚动视图在在最上面的错误结果,分别展示普通屏幕和带刘海屏的:看一下想要的结果:#前言这段时间一直在学习英语,所以没时间写文章,学习英语帮助还挺大的,现在看编译器错误不用翻译软件也能有兴趣看完了,简单的能直接看懂.今天要给公司的app的首页重做,因为这个是以后的工作,这2天干活快,就提前把以前程序员首页重做了一下.发现在xib中滚动视图UIScrollView如果放在最上面的话,一定在statusBar下面出现.所以不得不借助代码计算状态栏高度来解决这个问题先看一下不移动状原创 2021-05-19 17:58:38 · 1631 阅读 · 5 评论 -
swift内存缓存NSCache和沙盒磁盘缓存使用教程和demo下载
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-03-21 22:14:28 · 1761 阅读 · 1 评论 -
swift中的计算属性和省略用法教程配合RxSwift在视图和控制器之间传值使用
目录计算属性的基本语法和注意点计算属性自己没有存储属性的那样的空间,get{}里面的返回值,是通过计算其他存储属性得到的动态值必须用var 来修饰计算属性,不能使用let,因为计算属性会随时改变只读计算属性,可以省略get关键字RxSwift中 PublishSubject 可以转换为Observable ,反过来Observable不能赋值给PublishSubject在RxSwift里面计算属性的应用demo代码下载地址前端时间在使用RxSwift的时候经常遇到看着像闭包的语法,但是因为结尾没有(),原创 2021-03-20 23:44:53 · 373 阅读 · 0 评论 -
swift5.3多重尾随闭包有默认参数和无默认参数调用顺序教程和demo代码下载
目录前言不带默认值的多重尾随闭包有默认参数的尾随闭包调用端:多重尾随闭包,闭包参数都有默认参数的时候,调用的时候默认尾随闭包给了最后一个参数调用端前言swift5.3中规定了多重尾随闭包必须填写参数名.经常使用rxswift,会发现里面默认的订阅就带着多重尾随闭包,而且里面的参数是没有默认值的,今天来做例子看下多重尾随闭包,在有默认值和没有默认值的调用结果.例子中为了能动态查看结果,使用了RxSwift对输入框UITextField进行了订阅.这样可以减少代码量,如果你不会也没事,我在代码里进行功能注释原创 2021-03-18 11:57:03 · 491 阅读 · 2 评论 -
swift混编调用oc编写的Xib UIView出现[Storyboard] Unknown class in Interface Builder file.问题的解决
目录编译器运行后报错问题原因:这种问题仅限于swift调用其他项目的oc xib其他项目的oc xib配置如下:之前封装xib都是封装的控制器,今年开始把UIView封装成Xib,这样更灵活,但是之前都是封装的Swift的Xib给Swift项目用,今天封装了Oc Xib给Swift项目调用发现了问题.在Storyboard里面不识别oc 的Xib编译器运行后报错[Storyboard] Unknown class _TtC24TDWTZImagePickerViewDemo20TDWTZImagePi原创 2021-03-17 12:24:59 · 1404 阅读 · 0 评论 -
RxSwift防止服务器频繁调用的利器throttle控制时间间隔的教程和demo代码下载
目录前言实战例子throttle方法的语法讲解例子1:模拟直播发送礼物前言记得以前看过一篇文章,写了又臭又长一大堆代码,目的就是为了直播的时候发送礼物,屏幕礼物连续显示,但是发送给服务器的时候要几秒钟发送一次,把累计的发送礼物发送过去.代码我已经记不住了,太麻烦了,今天的throttle方法可以轻松解决这个问题.今天的用这个方法做了3个实战的例子:实战例子1.频繁点击发送礼物按钮,屏幕立即显示发送礼物,但是发送给服务器是2秒发送一次2.timer 300毫秒执行一次处理,但是发送给服务器是1秒1原创 2021-03-11 12:01:57 · 1571 阅读 · 0 评论 -
rxswift bind和drive绑定系统控件和自定义控件教程
目录bind和 drive来绑定系统控件bind绑定系统空间使用drive绑定用bind和drive 绑定自定义控件demo下载之前一直都是用rxswift绑定系统空间,比如Label,TextField,按钮Title这些,可以自定义的空间,比如网上的第三方库的空间,就不会绑定,前段时间用了一个笨的方法,通过自己发送onNext来当做bind使用,今天看到了正统的bind自定义控件的使用方法.具体如下bind和 drive来绑定系统控件bind绑定系统空间每一部的结实放在了代码注释里面 @IBO原创 2021-03-10 18:14:45 · 1464 阅读 · 0 评论 -
swift 5.1和oc双语言 WechatOpenSDK (1.8.7.1)微信登录集成教程封装成支持swift和oc方法调用
这里写目录标题先看一下demo演示安装pod 安装到微信官网注册账户,并获取3个数据添加关联域名 Associated Domainsinfo.plist里面 添加 白名单添加 URL SchemesAppDelegate.swift文件中设置 方法:把后台设置的3个数据添加进全局变量伪装成oc的宏定义给封装的类用swift页面调用微信登录并且获取返回值oc页面调用微信登录并且获取返回值demo中的点击按钮微信官网的登录demo下载以后运行没跑起来,看文档又说的不全,自己做了demo并且封装成了swift原创 2021-03-05 14:38:49 · 2468 阅读 · 6 评论 -
RxSwift中垃圾袋回收袋DisposeBag的使用技巧和demo下载
目录垃圾袋移除通知订阅关系赋值新的垃圾袋会让之前垃圾袋绑定的订阅关系释放用来给timer停止demo下载地址前言:前端时间学习了一下RxSwift框架,全学完以后再回过头来发现,后来理解的垃圾袋和最开始时候不一样,今天稍微总结一下垃圾袋移除通知订阅关系let disposeBag = DisposeBag() //成员变量 override func viewDidLoad() { super.viewDidLoad()let UserNoti1 = "UserNoti1"原创 2021-02-20 21:52:14 · 1560 阅读 · 0 评论 -
最简单的swift forwardingTarget转发消息教程加demo代码下载
这里写目录标题前言使用场景场景1 perform执行方法的时候场景2 timer运行的时候,要执行一个方法forwardingTarget方法的作用demo代码下载前言(这段可以不看)之前看了关于forwardingTarget的文章,太长了,99%的文字讲的不是如何使用,是里面一大堆整体功能的讲解,看完以后太浪费时间,所以今天我把这1%真正我们要用的功能和原理写出来,目的就是为了节省大家时间,让文章更短.(这段也可以不看)与之前做了一个关于appdelegate文件加载不同第三方的框架,oc版本里原创 2021-02-08 17:33:17 · 948 阅读 · 1 评论 -
RxSwift zip和combineLatest的区别教程附demo代码下载
目录zip作用combineLatestdemo下载地址前言:RxSwift中zip和combineLatest 功能很像,但是有区别,用demo详细说一下两者的功能和区别zip作用目前最多达8个可观测序列组合成一个新的可观测序列,组合的序列的时候,要凑足一组完整序列的时候才会发出信号,也就是说,这些序列必须同时凑足一组,被观察者订阅到下面代码,是 有3个PublishSubject辅助序列,作用是在subscribe订阅代码出现之后,执行onNext的序列才会被订阅到.zip方法,把这3个序列拼原创 2021-02-02 18:50:52 · 751 阅读 · 0 评论 -
swift中map和flatMap的区别-flatMap可以降维打击附Demo代码下载
目录在1维数组中Map和flatMap的基本用法Map用法高阶函数flatMap在1维数组中跟map运行结果一样Map二维数组,数组维度不会改变2维数组,flatMap开始降维打击3维数组 flatMap可以连续降维Demo下载地址在1维数组中Map和flatMap的基本用法Map用法基本功能:在1维数组中他俩的功能都是遍历数组,并且执行闭包{} 内的表达式,然后返回结果赋值给数组中的元素.首先Map和flatMap都是映射,用微积分里面的东西就是 y = f(x) ,这里面的x是数组中的元素,f就原创 2021-02-01 16:45:45 · 691 阅读 · 2 评论 -
swift json字符串和对象模型相互转换教程和代码
目录前言把方法封装到协议的目的协议代码编写模型调用端的代码对象赚json字符串json字符串转换成模型demo下载地址前言之前为了封装URLNavigator路由框架,当要传递控制器的参数的时候,需要用到传json字符串,然后接收的时候再把json字符串转换成对象.所以今天做了这个protocol协议,只要让模型的类遵守协议,然后啥都不用写,就能直接调用方法,为了进一步封装URLNavigator做准备把方法封装到协议的目的protocol中,之所以放在protocol而不是class类中的原因是s原创 2021-01-27 10:15:29 · 3051 阅读 · 0 评论 -
swift协议protocol中使用关联类型associatedtype和泛型的教程和注意事项
目录在协议中如何使用泛型关联类型的关键字 :associatedtype协议中想要使用泛型不能像在class类中那样使用在协议中使用关联类型代替泛型在带泛型的class中,泛型类型填充关联类型泛型类型被基础类型替换协议中关联类型的注意事项关联类型的协议不能作为返回值,函数形参下面是正常的可以编译过的代码,协议中没有关联类型下面是编译错误的代码不能作为返回类型不能作为函数形参解决让class遵循带关联类型的协议,并且能当做形参和返回值的方法解决方法1:让泛型遵循协议,然后让泛型当做形参或返回值,代码如下解决方原创 2021-01-25 17:25:28 · 4405 阅读 · 0 评论 -
swift 5.0遍历获取类属性名的方法和注意事项demo代码
目录前言核心代码class_copyPropertyList在swift3.0以后失效的原因获取类属性的swift的方法代码遍历类属性有什么作用?用一个类来试试哪些属性能被查看调用的代码demo代码下载后记前言今天是周六休息,在家研究swift的URLNavigator路由框架,因为里面都是用url字符串来打开控制器,这样太不安全了,如果拼写错了,编译也不会报错,只有运行的时候才会发现错误,还得修改第二次url,作为一个懒人,我封装了这个框架,在输入类名的时候直接类名.self就行,拼写的时候xcode原创 2021-01-23 20:37:32 · 1683 阅读 · 0 评论 -
Swift实现java匿名内部类的用法教程和demo下载
目录匿名内部类的作用java中的匿名内部类swift中实现匿名内部类demo代码下载匿名内部类的作用java中有匿名内部类的语法,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就可以使用匿名内部类java中的匿名内部类public class HelloWorldAnonymousClasses { /** * 包含两个方法的HelloWorld接口 */ inter原创 2021-01-22 12:28:42 · 794 阅读 · 1 评论 -
swift中的内部类用法和注意事项
目录内部类的作用代码示例类内作用范围注意点内部类的作用内部类的作用是,在全局命名空间里,类外访问不了,想要访问,必须是类内才能访问,不会污染全局命名空间代码示例下面这个Person类,里面有个方法saySomething,说点什么,里面调用的时候传进去参数枚举类型,通过传进去的参数,调用内部类Say,的对象方法Hello()或者是Bye()class Person: NSObject { enum SayType { case Hello case Bye原创 2021-01-21 15:46:19 · 886 阅读 · 0 评论 -
swift的匿名闭包用法教程
目录预备知识匿名闭包普通闭包的用法前言:这几天研究RxSwift框架,看到里面有个anonymity的东西,后来一看是匿名内部类,以前可能学过,但是平时基本不用,今天总结一下,swift里面匿名用法的2个用法: 匿名闭包 和 匿名内部类预备知识假设你已经掌握了swift匿名闭包普通闭包的用法普通的闭包是有名字的,通过闭包名字就能调用闭包,如下:首先定义一个计算函数,如下,作用是把参数1和参数2 通过 参数3的闭包表达式计算 /* 计算函数 @param 参数原创 2021-01-21 11:13:23 · 548 阅读 · 0 评论 -
swift制作framework静态库教程与注意事项
目录新建项目设置相关参数1.设置静态库2.设置版本号3. 设置生成fat包4. Dead Code Stripping(NO)创建swift系统类扩展添加脚本swift代码调用我们的swift静态库OC使用swift编写的framework之前我写了一篇名为:xcode写framework静态库脚本文件合并fat文件教程和踩坑的文章:https://blog.csdn.net/boildoctor/article/details/112259356但还是没说具体怎么用swift建立framework静原创 2021-01-06 17:29:40 · 1902 阅读 · 3 评论 -
swift函数参数指针传递inout和@escaping冲突的解决方法
这里写目录标题需求解决方法容易产生的问题总结今天深入解决关于函数参数指针的问题。问题是这样,我在swift的一个函数里面,参数里需要传递一个指针类型的Int,但是这个函数里面还有一个逃逸闭包@escaping,于是就会报错这样:Escaping closure captures ‘inout’ parameter ‘selectRow’ ,意思是说:逃逸闭包补货了一个inout参数 selectRow需求我每次调用下面的swift方法,都会弹出一个PickerView,并且,设置label的text原创 2020-12-22 16:23:53 · 2270 阅读 · 3 评论 -
彻底解决Compiling for iOS xxx, but module ‘xxx‘ has a minimum deployment target of iOS xxx 错误
target ios版本和第三方库ios版本问题问题描述解决方法查看iphone iPad target的最低ios版本修改pod里第三方库问题描述这几天编辑xcode偶尔会发现这个错误,但是有时候重新编译一下错误就消失了,今天彻底解决一下这个错误错误提示:Compiling for iOS 10.0, but module ‘SwiftyJSON’ has a minimum deployment target of iOS 12.0: /Users/tdw/Library/Developer/Xc原创 2020-12-15 10:36:25 · 12250 阅读 · 0 评论 -
appcode创建CodeSnippets像xcode那样的自定义代码片段和导出方法
appcode创建自定义代码片段CodeSnippets创建自定义代码段用了一下appcode但是以前xcode里面保存了大量的自定义代码段在这里不能用,所以今天记录总结一下创建自定义代码段打开偏好设置左上角菜单栏,点击appcode,点击属性Preferences,或者直接快捷键command + ,(逗号)在搜索栏搜索: live tem,就能找到 Editor -> Live Templates,在右边选择 swift 或者 objective -C -> 点击右上角的加号添加一个原创 2020-12-14 12:52:47 · 707 阅读 · 0 评论 -
appcode快捷键和小贴士操作汇总2020.3版本(持续更新)
快捷键和快捷操作格式化文件重新设置缩进(只修改左边的缩紧,不修改代码之间的空格)注释快捷键//注释/* */ 注释选中一段平级代码,并且注释选中一段平级代码的内容水平滚动文件下面操作,从每次弹出的小贴士 和 官网的快捷键翻译而来格式化文件在文件中,格式化选中文件,如果不选中就格式化整个文件If you don’t select a code fragment, AppCode will reformat the whole file.在左边目录鼠标右键选中文件也能这么操作,可以按住shift同原创 2020-12-14 10:33:08 · 803 阅读 · 0 评论 -
Undefined symbol: _OBJC_CLASS_$_xxx错误的解决方法
Undefined symbol: _OBJC_CLASS_$_xxxxcode中的错误提示错误原因解决方法1:解决方法2:快速方法(推荐使用)今天在swift oc混编中,swift调用用了自己写的oc类setTzOc,编译时候发现错误 Undefined symbol: OBJC_CLASS$_setTzOc这是因为编译器在link阶段没有找到oc 类 setTzocxcode中的错误提示错误原因xcode的tagerts中的编译文件没有加入.m或者.swift 类文件打开Targets原创 2020-12-09 10:15:59 · 75307 阅读 · 5 评论