- 博客(414)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注

原创 GitHub上史上最全的iOS开源项目分类汇总
Category/Util sstoolkit一套Category类型的库,附带很多自定义控件 功能不错~ BFKit又一套Category类型的 Kit,还有几个工具类 APUtils又一套Category类型的 Kit
2016-09-05 14:49:31
2935
3

原创 NSURLSession学习笔记(三)Download Task
NSURLSession的Download Task用于完成下载任务,本文介绍如何创建断点续传的下载任务和后台下载任务。我们直接从分析Demo入手:故事板如下:只有一个View Controller,用于创建各种下载任务,并将下载后的图片显示到视图上,下载过程中会更新下载进度。头文件代码如下:[objc]
2016-05-17 09:08:59
3434

原创 CoreData数据持久化
CoreData介绍CoreData是一门功能强大的数据持久化技术,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互。CoreData提供数据–OC对象映射关系来实现数据与对象管理,这样无需任何SQL语句就能操作他们。CoreData数据持久化框架是Cocoa API的一部分,⾸次在iOS5 版本的系统中出现,它允许按照实体-属性-值模型组织数
2016-05-12 09:06:19
3869

原创 通读AFN-从创建manager到数据解析完毕
流程梳理今天开始会写几篇关于AFN源码解读的一些Blog,首先要梳理一下AFN的整体结构(主要是讨论2.x版本的Session访问模块):我们先看看我们最常用的一段代码:AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];[manager GET:@"https://www.baidu.com" paramet
2016-05-11 16:15:47
5468
2

原创 国内iOS大牛博客地址
博客地址RSS地址OneV's Denhttp://onevcat.com/atom.xml破船之家http://beyondvincent.com/atom.xmlNSHipsterhttp://nshipster.cn/feed.xmlLimboy 无网不剩http://feeds.feedburner.com/l
2016-05-10 11:04:59
2494

原创 git 使用详解(3)-- 初体验
Git 基础本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程仓库拉数据下来或者推数
2016-04-29 10:44:33
4254

原创 iOS图片拉伸技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60现在我们把它用作为按钮背景,按钮尺寸是150x50:
2016-04-29 10:28:10
4312

原创 iOS 开发类库
UI项目名称项目信息1、MJRefresh仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。(国人写)2、CBStoreHouseRefreshControl一个效果很酷炫的下拉刷新控件。3、B
2016-04-29 08:28:00
6216

原创 iOS开发系列--地图与定位
现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看一下iOS如
2016-04-26 17:18:44
4669
1
原创 Flutter-Scaffold组件
Scaffold组件可以帮我们实现上面需求说的效果。这篇博客主要分享容器组件的Scaffold组件的使用,希望对看文章的小伙伴有所帮助。
2023-03-09 12:34:04
885
原创 iOS自动化打包
一般自动打包都会专门使用一台 Mac 作为打包机(一般是 Mac Mini,大厂会有专门的打包集群),在打包机上安装 jenkins 用来做自动化构建,关于 jenkins 这块我就不展开讲了,有兴趣的可以去查阅相关资料。测试阶段一般会发生这样的场景,测试拼命的提 Bug,开发拼命的改 Bug,改完重新打包发给测试进行复测,那这个过程中频繁的打包肯定是不可避免的。代码提交后,执行打包目录下的打包脚本,脚本内部需要添加拉取最新代码操作,拉取之后进行打包。jenkins 收到通知后,就会执行配置好的构建任务;
2023-02-22 10:33:04
249
原创 2023最新面试
2. 减小 每一个 commit 代码变动, 使之容易被其他人 review。1. 思考 技术, 对团队, 对项目, 能不能带来收益。2. 自己 大概过一遍 需求, 脑子里 有一个 大概的 **1. 层次, 模块, 接口, 实现, 调用, 想清楚。4. 每一件事情, 独立的 任务跟踪 完成进度。** 自己做的事情, 体现 每一个人的 **2. 鼓励、帮助, 团队成员 清晰 **2. 每一个模块的 更小的点。1. 一定要时刻保持 **** 每个人可能会遇到的 **2. 接收别人的 **3. 倾听别人的 **
2023-02-21 10:43:33
737
原创 iOS跳转到设置界面
通用-还原:App-Prefs:root=Reset墙纸:App-Prefs:root=WallpaperSiri:App-Prefs:root=SIRI。定位:App-Prefs:root=LOCATION_SERVICESSafari:App-Prefs:root=SAFARI。照片与相机:App-Prefs:root=PhotosFaceTime:App-Prefs:root=FACETIME...通用-键盘:App-Prefs:root=General&path=Keyboard。
2023-01-16 10:54:02
619
原创 iOS蓝牙开发:蓝牙的连接和数据的读写
停止中心管理设备的扫描动作,要不然在你和已经连接好的外设进行数据沟通时,如果又有一个外设进行广播且符合你的连接条件,那么你的iOS设备也会去连接这个设备(因为iOS BLE4.0是支持一对多连接的),导致数据的混乱。// NSLog(@"characteristic(读取到的): %@, data : %@, value : %@", characteristic, data, value);// 此时由于枚举属性是NS_OPTIONS,所以一个枚举可能对应多个类型,所以判断不能用 = ,而应该用包含&
2022-10-27 16:26:26
1104
原创 RxSwift安装
RxSwift的github地址RxSwift官方文档RxSwift官方文档中文翻译RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护RxSwift的目的是让数据/事件流和异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程RxSwift的本质就是观察者模式。
2022-10-13 13:49:40
749
原创 Flutter开发环境安装MAC
这里/Users/apple/Documents/flutter-sdk/flutter/是我的Flutter安装路径。报告中会显示运行环境存在的一些问题,比如上图中,Xcode和Android Studio没有配置。(支持3.0或更高版本)众所周知的原因,国内访问google服务可能不太顺畅,如果没有vpn环境,可以访问国内镜像。好了,我们的Flutter开发环境已经搭建好了,接下来准备开发Flutter应用吧。注意:Dart SDK已经在捆绑在Flutter里了,没有必要单独安装Dart。
2022-10-12 18:57:08
575
原创 MAC电脑M1、M2Cocoapods问题
2020年11月11日,苹果正式发布第一款用于Mac的自研电脑芯片M1。由于ARM架构的原因,目前还有相当一部分未升级ARM架构支持的Mac软件无法在M1芯片的Mac电脑上运行。如果你的应用是通用型的应用出现不兼容问题可以「勾选使用 Rosetta 打开」(Intel芯片默认方式)方式运行程序。试了下还是报错,之后使用了下面的命令。
2022-10-12 15:44:44
752
原创 iOS16新特性及开发适配
iOS 16 满载全新的个性化功能、更具深度的智能技术,以及更多无缝的沟通与共享方式,让 iPhone 的体验更进一步。13、隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称。
2022-09-07 10:33:03
7266
2
原创 iOS 15相关改动
1、UINavigationBar、UIToolbar 和 UITabBar 设置颜色,图片,模糊效果,需要使用 UIBarAppearance APIs let barApp = UINavigationBarAppearance() barApp.backgroundEffect = UIBlurEffect(style: .regular) self.navigationController?.navigationBar.scrollEdgeApp...
2022-02-18 00:15:00
3209
原创 iOS屏幕旋转技术点及解决方案总结
1.屏幕旋转相关枚举关于屏幕旋转枚举一共有3种:UIInterfaceOrientation, UIInterfaceOrientationMask, UIDeviceOrientation1.1 UIInterfaceOrientation 和 UIDeviceOrientationUIDeviceOrientation是设备当前所处的方向, 它有7个值UIInterfaceOrientation 是屏幕当前所处的方向,它有5个值UIInterfaceOrientatio...
2022-02-17 19:59:04
3813
原创 iOS崩溃日志解析
# !/bin/shINPUTFILE=$1#echo "extension:${INPUTFILE##*.}"DSYM_FILE=""#从目录中查找dSYM文件#参数1:文件路径function findSymbolFileInFolder() { echo $(pwd) for file in `find "$(pwd)"` do extension="${file##*.}" if [ "$extension" == "d...
2022-02-17 19:44:30
1422
转载 iOS跳转到Wi-Fi设置页面
Objective-C 2.0代码- (void)gotoSettings { NSString *urlString = @"App-Prefs:root=WIFI"; NSURL *url = [NSURL URLWithString:urlString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if (@available(iOS 10.0, *)) { .
2021-05-07 10:45:16
2212
原创 【iOS】swift关键字整理及含义
以“#”开头关键字 字面量 类型 含义 #file String 所在的文件 #function String 所在的方法 #line Int 所在的行 #column Int 所在的列 #if * * #else#elseif * * #endif * * #available * * #selector * * 用在模式中的关键字 ..
2021-04-22 11:18:00
162
原创 2021 iOS开发必备
常用iOS开发网站资源图标 https://icomoon.io/app/#/select http://iconfont.cn/repositories http://www.iconfont.cn UI设计 UI中国:http://www.ui.cn/list.html UI4App:http://www.ui4app.com 技术新闻cocoaChina:http://www.cocoachina.com开发文档appleLibrary:
2021-04-21 15:29:52
194
原创 iOS14开发-动画
介绍动画往往能起到增强用户体验的作用,在 iOS 开发中,我们可以使用 UIKit 提供的动画来实现,简称 UIView 动画。UIView 动画实质上是对 Core Animation(核心动画)的封装,提供简洁的动画 API。普通动画API// 最完整open class func animate(withDuration duration: TimeInterval, delay: TimeInterval, options: UIView.AnimationOptions = []
2021-04-21 15:25:06
234
原创 iOS 教你shell脚本自动化打包
第一步:准备脚本文件,代码如下#工程名(自定义)project_name=你的工程名#打包模式 Debug/Release(自定义)development_mode=Release#scheme名(自定义,一般与工程名相同)scheme_name=你的工程名#plist文件所在路径exportOptionsPlistPath=./ExportOptions.plist#导出.ipa文件所在路径exportFilePath=~/Desktop/$project_name-i...
2021-04-21 10:10:54
289
原创 2021年cocoapods 安装
正文自己装过很多次CocoaPod,中间遇到过各种烦人的问题,也促使自己在不断的摸索中学习到了很多,总结一下,供大家学习研究,以下过程经本人新机测试,一路畅通无任何错误(请严格按照下述方法来做),中间有网络不好的可能会下载中断出错,只要从新执行一下命令就行了.CocoaPods简介:CocoaPods是一个用Ruby写的、负责管理iOS项目中第三方开源库的工具,CocoaPods能让我们集中的、统一管理第三方开源库,为我们节省设置和更新第三方开源库的时间。CocoaPods安装:下面就正
2021-04-19 16:25:51
285
原创 Mac下多个Xcode版本切换
有时候会遇到需要一些旧的版本Xcode的情况,这样电脑上就要安装多个Xcode。各个版本的Xocde下载地址首先需要安装Command Line ToolsCommand Line Tools, 下载与当前系统和安装的Xcode对应的Command Line Tools(其他版本的Xcode也在这里下载)1、显示当前使用的Xcode xcode-select -p //输出:Applications/Xcode.app/Contents/Developer ...
2021-04-01 15:26:41
719
原创 Swift学习Array学习深入浅出Swift高阶函数-Map、FlatMap、CompactMap、CompactMapValues、Filter、Reduce
Swift 作为一门新兴的语言,它吸收了众多语言的优点,函数式编程就是其中之一。在 Swift 中,函数是作为一等公民的存在,所以学习高阶函数还是非常有必要的,它可以使你的代码扩展性更高,代码更 Swift 范。废话不多说,下面就让我们开始吧!初探高阶函数在 Swift 中,高阶函数一共有下面几个:map:对给定数组每个元素,执行闭包中的映射,将映射结果放置在数组中返回。 flatMap:对给定数组的每个元素,执行闭包中的映射,对映射结果进行合并操作,然后将合并操作后的结果放置在数组中返回。
2021-02-28 21:31:09
372
原创 OC原理-isa详解
OC原理-isa详解在OC原理--对象、类的本质这篇文章我们提到过,isa指针进行一次位运算才能,拿到class对象和meta-class对象的真实地址。其实在64位前,isa就是一个普通的指针,存储这class对象、meta-class对象的内存地址。 从64位后开始,对isa进行了优化,变成了一个共用体(union)结构,用不同的位域来存储不同的信息从上图我们也可以看到isa是一个共用体结构。union isa_t { Class cls; uintptr_t bi..
2020-12-16 10:50:30
565
原创 2020年iOS面试
1.imsdk 封装了什么 单点登录 token加密 对称加密,非对称加密 本地加密 存储方式2.avplayer 缓存3.sdwebimage加载 为什么用位图 加载特别大图片怎么办 imagename imagecontentfile 区别释放时机4.图片渐进式加载 怎么做5.nsthead gcd nsopertion 区别 ab任务执行完 在执行C怎么办6.http https ca证书加密内容是什么 请求报文为什么在浏览器看到明文7.calayer uiview 区别 layer.
2020-11-19 09:07:26
170
1
转载 如何清晰的理解算法中的时间复杂度?
作者:程序员吴师兄链接:https://www.zhihu.com/question/20196775/answer/693388880来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。时间复杂度和空间复杂度经常拿来一起讲,本文就一并拿出来分析,希望能帮助题主更好的理解这两个概念。原文地址:冰与火之歌:「时间」与「空间」复杂度算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比.
2020-09-17 14:11:06
468
原创 iOS常用算法
算法:1、字符串反转2、链表反转3、有序数组合并4、hash算法5、查找两个自视图的共同父视图6、求无序数组当中的中位数字符串反转例: 给定字符串 “hello,worlld ”,实现将其反转输出 “dllrow,olleh”void char_reverse(char* cha){ // 指向第一个字符 char* begin = cha; // 指向最后一个字符 char* end = cha + strlen(cha) - 1;.
2020-09-17 10:28:51
518
原创 七种常见的数组排序算法整理(C语言版本)
~~~C语言版本~~~冒泡排序 选择排序 直接插入排序 二分插入排序 希尔排序 快速排序 堆排序#define EXCHANGE(num1, num2) { num1 = num1 ^ num2;\num2 = num1 ^ num2;\num1 = num1 ^ num2;}排序算法是否稳定:相同元素的相对在排序前后是否会发生改变,如果会,就是不稳定的,否则就是稳定的。一.冒泡排序冒泡排序原理很容易理解,就是重复地走访过要排序的元素列,依次比较两个相邻的元素,顺序不.
2020-09-15 15:33:52
527
原创 UIView和CALayer之间的关系
UIView和CALayer之间的关系从框架来说CALayer 基于 QuartzCore 框架 UIView 基于 UIKit 框架从父类来说使用CALayer同样可以实现与UIImageView一样的展示效果。那么到底有什么区别呢? 其实,CALayer是直接继承自NSObject的,而UIView是直接继承自UIResponder的。所以、相比于CALayer来说、UIView多了一个事件处理功能、也就是说、CALayer是不能处理用户的触摸事件的、而UIView可以。那么、当
2020-09-15 15:27:40
340
原创 Git可视化工具SourceTree的使用
我在前面几篇文章中详细介绍了Git命令行的使用《Git学习札记》《Git学习札记——进阶》,以及使用Xcode中自带的Git可视化工具的使用《Xcode中git的使用方法介绍与"Please tell me who you are"问题的解决方案》。对于Git的初学者,个人建议先学习Git命令行,然后再去使用图形化工具,这样才会对整个Git的工作流有一个完整的了解。今天我们要来学习的工具是SourceTree,一款非常好用的Git可视化工具。我今天的操作都将在Mac上进行,并且以iOS项目作为演示。因为对.
2020-07-28 15:58:25
226
原创 2020面试题 iOS
目录1、设计模式是什么? 你知道哪些设计模式,并简要叙述?2、MVC 和 MVVM 的区别?3、#import跟 #include 有什么区别,@class呢,#import<> 跟 #import“”有什么区别?4、frame 和 bounds 有什么不同?5、Objective-C的类可以多重继承么?没有的话用什么代替?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?6、@property 的本质是什么?ivar、getter、sette.
2020-07-28 15:51:48
440
cordova-plugin-camera 这个东西用人用过吗?
2016-05-03
iOS写一个插件禁止在app内截屏和使用相机
2016-05-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人