iOS开发笔记
文章平均质量分 64
爱勤海之旅
编程中充满乐趣,寻找,定位,更改,完成!
展开
-
iOS 系统分享到自己app的实践
首先要配置相同的 App Groups,必须group.开头NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"];宿主app 获取数据NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"];原创 2023-08-25 23:54:45 · 530 阅读 · 0 评论 -
iOS 其他APP在“其它应用中打开”时显示自己的APP
需求如下:在其他APP打开文件,选择其他更多方式打开,然后能够看到自己的APP。原创 2023-08-26 00:21:12 · 296 阅读 · 0 评论 -
iOS 搭建组件化私有库
当你需要新建组件的时候,就在这里开始,如果是想修改原有的库,就可以直接在之前的组件仓库里面修改即可,可以查看步骤7。步骤1是在没有索引库的情况下或者是新增索引的时候才需要用到,如果不需要增加索引请查看步骤3(创建基础组件库)1.所有验证通过之后,要将spec文件推送到最开始创建的私有库索引库当中。最后,项目本地组件库创建完成后会自动打开项目。首先在码云上建立一个私有库索引,起名为。其他属性根据需要自行配置。:私有代码仓库的源地址。:私有代码仓库的地址。随便创建一个项目名为。分支,这里先创建一个。原创 2023-08-01 15:55:45 · 1560 阅读 · 0 评论 -
iOS-线程同步的几种方式
在多线程开发中数据的安全是非常重要的,在开辟分线程执行耗时操作以保证主线程不阻塞的同时,数据的安全也要保证才行。如果同一个资源(一个变量或者一段代码或者存储的数据等)同时被多个线程访问修改,可能会造成数据的错乱,得到的也就不是自己想要的结果,所以多线程开发中线程间的同步有时显得尤为重要。实现多线程间的同步方式:锁(互斥锁、条件锁、递归锁)和GCD(队列、信号量、栅栏)。了解更多类型的锁可以查看线...原创 2020-03-16 16:02:43 · 2271 阅读 · 0 评论 -
iOS - 线程中常见的几种锁
线程锁主要是用来解决“共享资源”的问题,实际开发中或多或少的都会用到各类线程锁,为了线程的安全我们有必要了解常见的几种锁,下面是本人查看一些大牛的博客然后整理的内容,加上自己的一些见解,水平有限,如果不慎有误,欢迎交流指正。常见锁列举自旋锁(OSSPinLock、os_unfair_lock)互斥锁(pthread_mutex_t、NSLock、@synthronized)递归锁(pth...原创 2020-03-15 21:20:47 · 1861 阅读 · 0 评论 -
iOS -多线程之pthread
pthread是POSIX thread的简写,一套通用的多线程API,适用于Unix、Linux、Windows等系统,跨平台、可移植,使用难度大的C语言框架,线程生命周期由程序员管理,百度百科上有详细的介绍。在多线程方面iOS有GCD、NSThread、NSOperation,所以开发时pthread几乎用不到,以下就简单运用pthread开启一个子线程,用来处理耗时操作。导入头文件想使用...原创 2020-03-12 16:20:52 · 511 阅读 · 0 评论 -
The default interactive shell is now zsh.
Mac-关于升级macOS Catalina后,终端试用问题,每次打开终端都会有一下提示:The default interactive shell is now zsh.To update your account to use zsh, please run `chsh -s /bin/zsh`.For more details, please visit https://support...原创 2020-01-17 15:51:02 · 2749 阅读 · 0 评论 -
iOS-instancetype与id的区别以及alloc、init与new的区别
不管是iOS原生方法还是平时自己写方法,都能碰到instancetype和id,那么这两者有何区别呢?一、instancetype和 id的异同相同点:instancetype是clang 3.5开始提供的一个关键字,跟id类似,用于表示某个方法返回的未知类型的Objective-C对象。不同点:instancetype只能作为返回值类型,id不仅可以作为返回值类型也可以当作参数使用。...原创 2019-11-28 17:58:14 · 873 阅读 · 0 评论 -
iOS-封装系统通讯录调用
在项目中有的地方会用到获取通讯里面的某个联系人的联系方式,这里我们稍微封装一下这个方法。第一步:我们需要获取通讯录权限在info.plist文件中,添加 key : Privacy - Contacts Usage Description,value:方便用户从通讯录选取要保存的号码,如下图:第二步:新建通讯录管理类1、新建一个ContactManager类添加两个Block,用于回调...原创 2019-11-25 13:26:51 · 534 阅读 · 0 评论 -
iOS-雷达数据图
这次简单的写一个关于雷达数据显示的案列,实现简单,主要用UIBezierPath以及CAShapeLayer,如下图:具体实现:思路:如何绘制上图中的六边形?我们只需要确定最外层六边形的边长(确定大小)和六边形的中心点的坐标(确定位置)。绘制几层六边形可以随意控制(把边平分几段)。然后添加每个顶点旁边的文本。最后根据相应的数据值绘制layer(颜色层)。实现代码:1、初始化默认数据:-...原创 2019-11-13 13:59:30 · 531 阅读 · 0 评论 -
iOS - 添加代码片段(Code Snippets)
添加代码段目的是为了减少敲写重复的代码,xcode原生带有很多代码段,例如for语句、switch语句等,{}表示代码段。代码段制作:具体制作代码段也很简单。先选中一段代码,然后右键,选择Create Code Snippet。参数解释Title::名称(代码段名称)。Summary:描述(代码段干啥用的)。Platform:作用平台(All、iOS、macOS、tvOS、wat...原创 2019-09-16 11:55:16 · 787 阅读 · 0 评论 -
iOS-NSRange使用
NSRange本身是个结构体,里面有两个属性location(起始位置)和length(长度),如下NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) { NSRange r; r.location = loc; r.length = len; return r;}我们应用NSRange...原创 2019-01-18 10:17:46 · 2055 阅读 · 0 评论