IOS技术
mutou680
技术随笔。
展开
-
iOS 组件实现
如何实现组件化我们pod install 一个库,是如何加载到项目的创建本地组件库的流程我们pod install 一个库,是如何加载到项目的我们本地pod install后,就可以把三方库从GitHub加载到自己的项目中。具体流程如下:其实是根据查找本地的.spec仓库,找到对应的.spec后去GitHub拉代码如果本地没有找到其.spec,那么就会去GitHub的spe...原创 2019-12-11 20:13:54 · 235 阅读 · 0 评论 -
iOS 面试第十五节 组件化
组件化1.组件化有什么好处?2.你是如何组件化解耦的?3.为什么CTMediator方案优于基于Router的方案?4.基于CTMediator的组件化方案,有哪些核心组成?1.组件化有什么好处?业务分层、解耦,使代码变得可维护;有效的拆分、组织日益庞大的工程代码,使工程目录变得可维护;便于各业务功能拆分、抽离,实现真正的功能复用;业务隔离,跨团队开发代码控制和版本风险控制的实现;模...原创 2019-12-11 16:54:52 · 443 阅读 · 0 评论 -
iOS 面试第五节 WebView
WebView1.说一下 JS 和 OC 互相调用的几种方式?2.在使用 WKWedView 时遇到过哪些问题?1.说一下 JS 和 OC 互相调用的几种方式?js调用oc的三种方式:根据网页重定向截取字符串通过url scheme判断替换方法.context[@“copyText”]注入对象:遵守协议JSExport,设置context[@oc调用js代码两种方式通过web...原创 2019-12-11 16:14:36 · 531 阅读 · 0 评论 -
iOS 面试第四节 UIKit框架
UIKit框架1.UIView 和 CALayer 是什么关系?2.Bounds 和 Frame 的区别?3.setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?4.谈谈对UIResponder的理解5.loadView的作用?6.使用 drawRect有什么影响?7.keyWindow 和 delegate的window有何区别1.UIView 和 CALayer...原创 2019-12-11 16:11:22 · 298 阅读 · 0 评论 -
iOS 面试第十三节 三方库
三方库1.进程与线程2.什么是多线程?3.多线程的优点和缺点4.多线程的 并行 和 并发 有什么区别?5.iOS中实现多线程的几种方案,各自有什么特点?6.多个网络请求完成后执行下一步7.多个网络请求顺序执行后执行下一步8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组9.多线程中的死锁?10.GCD执行原理?1.进程与线程...原创 2019-11-19 03:49:35 · 172 阅读 · 0 评论 -
iOS 面试第十二节Runloop
Runloop1.进程与线程2.什么是多线程?3.多线程的优点和缺点4.多线程的 并行 和 并发 有什么区别?5.iOS中实现多线程的几种方案,各自有什么特点?6.多个网络请求完成后执行下一步7.多个网络请求顺序执行后执行下一步8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组9.多线程中的死锁?10.GCD执行原理?1.进程...原创 2019-11-19 03:48:00 · 242 阅读 · 0 评论 -
iOS 面试第十节 Runtime
Runtime1.进程与线程2.什么是多线程?3.多线程的优点和缺点4.多线程的 并行 和 并发 有什么区别?5.iOS中实现多线程的几种方案,各自有什么特点?6.多个网络请求完成后执行下一步7.多个网络请求顺序执行后执行下一步8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组9.多线程中的死锁?10.GCD执行原理?1.进程...原创 2019-11-19 03:46:53 · 182 阅读 · 0 评论 -
iOS 面试第九节 多线程
多线程1.进程与线程2.什么是多线程?3.多线程的优点和缺点4.多线程的 并行 和 并发 有什么区别?5.iOS中实现多线程的几种方案,各自有什么特点?6.多个网络请求完成后执行下一步7.多个网络请求顺序执行后执行下一步8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组8.异步操作两组数据时, 执行完第一组之后, 才能执行第二组9.多线程中的死锁?10.GCD执行原理?1.进程与线程...原创 2019-11-19 03:42:44 · 214 阅读 · 0 评论 -
iOS 面试第八节 网络
网络1.网络七层协议2.Http 和 Https 的区别?Https为什么更加安全?3.HTTPS的连接建立流程4.解释一下 三次握手 和 四次挥手5.TCP 和 UDP的区别6.Cookie和Session7.DNS是什么8.DNS解析过程1.网络七层协议滴滴多大啊 奥德赛打发第三方打算范德萨发阿斯顿发打算范德萨发撒法阿斯蒂芬地方的撒防辐射服的地方的撒发大水发的说法胜多负少的打发士打法...原创 2019-11-19 03:37:50 · 250 阅读 · 0 评论 -
iOS 面试第七节 消息传递的方式
消息传递的方式1. KVC实现原理滴滴2. KVO实现原理3. 如何手动触发KVO方法4. 通知和代理有什么区别5. block和delegate的区别6.为什么Block用copy关键字1. KVC实现原理的的滴滴滴滴多大啊 奥德赛打发第三方打算范德萨发阿斯顿发打算范德萨发撒法阿斯蒂芬地方的撒防辐射服的地方的撒发大水发的说法胜多负少的打发士打法爱的色放撒地方第三方阿士大夫撒...原创 2019-11-19 03:30:32 · 203 阅读 · 0 评论 -
iOS 面试第六节 内存管理
内存管理1. proprety 介绍2.Object-C语言中常用的属性proprety有哪些?有什么区别吗?2. 为什么weak修饰的属性,当其实例被释放后,可以置为nil?1.什么情况使用weak关键字,相比assign有什么不同?2.如何让自己的类用copy修饰符?如何重写带copy关键字的setter?3.深拷贝与浅拷贝4.@property的本质是什么?ivar、getter、sette...原创 2019-11-18 04:00:39 · 272 阅读 · 0 评论 -
iOS 面试第三节 Foundation框架
Foundation框架1.nil、NIL、NSNULL 、NULL有什么区别?2.如何实现一个线程安全的 NSMutableArray?所有的Mac OS X和IOS程序都是由大量的对象构成,而这些对象的根对象都是NSObject,NSObject就处在Foundation框架之中1.nil、NIL、NSNULL 、NULL有什么区别?nil、NIL可以说是等价的,都代表内存中一...原创 2019-11-17 23:09:47 · 177 阅读 · 0 评论 -
iOS 面试第二节 算法
算法此处暂时做一个tag标志,先处理后面更重要的事情,然后回头处理这边。原创 2019-11-17 19:20:22 · 111 阅读 · 0 评论 -
iOS 面试第一节 数据结构
数据结构数据结构1.数据结构存储一般常用的有几种?各有什么特点?2.集合结构、线性结构、树形结构、图形结构3.单向链表、双向链表、循环链表4.数组同链表的区别数据结构1.数据结构存储一般常用的有几种?各有什么特点?数据存储的结构一般有两种:顺序存储结构、链式存储结构顺序存储结构: 比如说数组,1-2-3-4-5-6-7-8-9-10存储是按顺序的。再比如栈、队列都是顺序存储结构链式存...原创 2019-11-17 07:04:45 · 257 阅读 · 0 评论 -
iOS项目适配
先明白四个概念英寸 手机屏幕的物理长度,使用英寸作为单位。比如iPhone 4屏幕是3.5英寸,iPhone 5 是4英寸,iphone 6是4.7英寸,这里的数字是指手机屏幕对角线的物理长度。像素 屏幕像素,比如iPhone 3GS屏幕是320 x 480像素,iPhone 4是640 x 960像素,这里的像素可以想象成屏幕上真正用来显示颜色的发光小点点 点,开发App时候使用的单翻译 2016-12-27 14:23:44 · 257 阅读 · 0 评论 -
iOS swift 获取对应APP定位权限是否打开并引导用户打开
if let appSettings = NSURL(string: UIApplicationOpenSettingsURLString) { if isLocationServiceOpen() { let alertCon = UIAlertController.init(title: "端末位置坐标没有被允许,引导用户去设置打开坐标",原创 2017-06-06 19:30:34 · 3647 阅读 · 0 评论 -
关于如何更改frame坐标的问题
1.分两种情况,一种是在封装好的view空间本身 2.另一种是在调用这个空间的viewController中1.在view控件本身中如何修改frame调用本身的控件方法layoutIfNeeded layoutIfNeeded()// func layoutIfNeeded() {// super.setNeedsFocusUpdate()// r原创 2017-05-19 10:58:15 · 729 阅读 · 0 评论 -
How to bring a subView to the front a UIView OR toBack a UIView
使用的是bringSubview这个方法parentView.bringSubview(toFront: childView)或者可以写成如下childView.superview.bringSubview(toFront: childView)原创 2017-05-22 10:38:28 · 450 阅读 · 0 评论 -
UINavigationBar 相关问题
1. 关于更改navigationBar 透明//此方法封装navigationBar背景透明,然后设置背景色 func navigationBarBackGround(red:CGFloat, green:CGFloat, blue:CGFloat, alpha:CGFloat) { currentMenu?.navigationBar.setBackgroundImage(原创 2017-05-23 19:02:24 · 251 阅读 · 0 评论 -
关于category
这是一个类别,是用来扩充方法的。比如nssteing uiimage原创 2017-03-23 17:17:03 · 238 阅读 · 0 评论 -
just for test
just for test原创 2017-03-28 11:03:32 · 375 阅读 · 0 评论 -
storyboard 设置圆角与边框颜色
设置圆角 layer.cornerRadius设置边框宽度 layer.borderWidth设置边框颜色 layer.borderColorFromUIColor目前swift中storyboard设置边框颜色后没有效果。那么需要添加以下的代码在你的ViewController中,但是在xib中就不需要了。//由于swift函数问题,所以添加次方法实现storyboard中,边框颜色设原创 2017-02-13 12:43:08 · 2613 阅读 · 0 评论 -
iOS开发中,swift关于代理的问题
通常是View是单独的一个画面,然后将View整体添加到试图控制器上面。举例说明aView添加到bViewController上面。通常在aView上面还添加有很多其他空间比如button,那么我们如何点击button后,响应bViewController上面的事件呢?? 这就需要用到代理了,首先在aView中声明一个协议protocol TpointDialogViewDelegate {原创 2017-02-13 12:36:56 · 378 阅读 · 0 评论 -
object-c中error: xxx/xxxx/xxx/xx/PrefixHeader.pch file not found
这是路径问题,导致找不到文件,修改路径即可我们有时候会down下别人的代码,但是由于路径的不同会导致一些文件找不到。 1、找到需要更改的位置,在xcode中打开targets中的项目–>Build Settings–>Prefix Header路径改为自己项目文件所在路径即可。原创 2017-03-01 13:24:13 · 3066 阅读 · 0 评论 -
关于内购发布流程
【链接】iOS证书说明和发布内购流程整理 http://www.cocoachina.com/ios/20150521/11889.html 怎么申请内购 http://blog.csdn.net/darling_shadow/article/details/51538267转载 2017-01-20 10:21:20 · 285 阅读 · 0 评论 -
xib 中 Button 设置
xib 中 Button 设置auto layout 约束条件的使用设置圆角约束条件的设置与删除约束条件的添加 在xib中,按住选中需要设置的控件,按住右键与想要关联的相对控件连线,然后选择需要关联的属性。比如说B控件相对A控件拥有相对的高度,或者拥有相对的宽度等等。约束条件的删除 首先选中控件,然后控制面板最右边的向上的小三角(鼠标放在上面停留三四秒提示 resolve Auto原创 2016-12-26 14:48:28 · 1931 阅读 · 0 评论 -
Swift3 开发中的一些小技巧
关于字符串的问题import UIKitvar firstName = "Jack"var lastName = "Bauer"var age = 45var fullName = firstName + " " + lastNamevar fullName2 = "\(firstName) \(lastName) is \(age)"fullName.append(" III")var b原创 2017-03-23 17:34:07 · 356 阅读 · 0 评论 -
对字符串进行阴影处理---swift3
对字符串进行阴影处理,需要先将字符串转换为Attribute形式 shadow = NSShadow.init() shadow.shadowColor = UIColor.black shadow.shadowBlurRadius = 4.0 shadow.shadowOffset = CGSize.init(width: 1, he原创 2017-07-07 16:30:18 · 469 阅读 · 0 评论 -
关于WebGL进行屏幕截屏的问题
最近项目中用了webgl表示一个3D地图,在进行twitter分享时候,截屏失败。 解决方案: 通过调用本地js代码,通过js进行截屏,通过返回url来获取图片的base64数据,然后将数据进行转换为data,然后转换为图片进行分享。注意对base64格式数据转换为data的时候要注意使用自身的方法。//通过url返回的图片base64数据获取一个图片 func getImageFrom原创 2017-07-07 16:38:05 · 4874 阅读 · 8 评论 -
用户头像的背景为头像的模糊头像时候
//模糊函数 UIImage *img = [UIImageimageNamed:@"0"];//输入 CGFloat outputAspectRatio =SCREEN_WITH/SCREEN_WITH;//输出宽高比 CIFilter *gaussianBlurFilter = [CIFilterfilterWithName:@"CIGaussianB翻译 2016-01-20 17:38:10 · 813 阅读 · 0 评论 -
Xcode 一个工程多个项目,项目资源互享
文章目录参考链接操作流程路径报红怎么办参考链接https://www.jianshu.com/p/468f8da385e7操作流程首先创建平台项目 workspace创建项目App1、App2打开workspace平台,file --> add xxxx to --> 选择App1、App2加入进来。路径报红怎么办如果是plist路径找不到了,那么在Target–...原创 2019-02-15 10:36:53 · 668 阅读 · 0 评论 -
学习点滴
NSAssert 使用,在封装组件中使用 // 使 NSAssert 只进入断点,之后可以继续运行,而不会杀死程序#undef NSAssert#define NSAssert(condition, frmt, ...) \do { \@try { \if (!(condition)) { \NSString *text = @"Assert Exception: "; \...原创 2018-08-13 16:24:03 · 207 阅读 · 0 评论 -
tableView,collectionView如何获取当前cell?
tableView,collectionView如何获取当前cell?collectionView.visibleCells.first!原创 2017-12-21 17:56:36 · 3530 阅读 · 0 评论 -
关于cocoapods报错与安装
cocoapods安装过程出现问题与解决 在终端中进行的操作 获取当前的版本 ruby -v列出已知的ruby版本rvm list known 更新gems gem update —system 出现报错ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions fo原创 2016-11-21 17:40:58 · 996 阅读 · 0 评论 -
VIPER架构学习
VIPER架构学习探索编程准则资源下载什么是VIPER功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入编程准则代码...原创 2019-02-12 19:56:09 · 4685 阅读 · 0 评论 -
wkWebView更改背景色
wkWebView.isOpaque = false wkWebView.backgroundColor = UIColor.black原创 2017-09-01 17:36:25 · 8390 阅读 · 0 评论 -
从外界跳转到APP 的时候导航栏会闪一下
处理办法是将背景色与跳转的颜色设置为一致即可。 let navBar = navigationController?.navigationBar navBar?.barTintColor = UIColor.black navBar?.isTranslucent = false原创 2017-09-01 14:59:53 · 905 阅读 · 0 评论 -
WKWebView禁止捏合的方法
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) { let javascript = "var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('co原创 2017-07-27 19:03:21 · 2800 阅读 · 0 评论 -
storyboard中 tableView的cell禁止响应的方式与label换行
cell行数禁止响应的方式 在selection中选择方式default改为Nonelabel换行 \n或者改为 option+回车(enter)原创 2017-08-09 09:26:26 · 375 阅读 · 0 评论 -
scrollview刷新界面导致下沉64个point的问题
由于xib或者storyboard中有自适应的下沉,所以需要将点禁止掉self.automaticallyAdjustsScrollViewInsets = false原创 2017-07-21 19:14:15 · 340 阅读 · 0 评论