04 2017 档案
摘要:iOS开发-iOS 10 由于权限问题导致崩溃的那些坑 使用Xcode8写自己的东西有一段时间了,在使用Xcode8编程时不得不说我特别喜欢改后的默认字体,哈哈,当然默认字体是可以调回去的,只不过默认的字体感觉看起来比以前舒服了,毕竟不会像之前那么”字正腔圆”了。 步入正题吧,不然慢慢的就会成为话唠
阅读全文
摘要:UITableView__cell 距tableview顶端有间距 UITableView__cell 距tableview顶端有间距 如何去掉这个间距呢?解决方法如下: //top 为cell距顶端的间距 (一般为负值) self.formTable.contentInset = UIEdgeIn
阅读全文
摘要:李洪强iOS经典面试题35-按层遍历二叉树的节点 问题 给你一棵二叉树,请按层输出其的节点值,即:按从上到下,从左到右的顺序。 例如,如果给你如下一棵二叉树: 3 / \ 9 20 / \ 15 7 输出结果应该是: [ [3], [9,20], [15,7] ] 代码模版 本题的 Swift 代码
阅读全文
摘要:李洪强iOS经典面试题34-求两个链表表示的数的和 问题 给你两个链表,分别表示两个非负的整数。每个链表的节点表示一个整数位。 为了方便计算,整数的低位在链表头,例如:123 在链表中的表示方式是: 3 -> 2 -> 1 现在给你两个这样结构的链表,请输出它们求和之后的结果。例如: 输入: (2
阅读全文
摘要:李洪强IOS经典面试题 33-计算有多少个岛屿 问题 在一个地图中,找出一共有多少个岛屿。 我们用一个二维数组表示这个地图,地图中的 1 表示陆地,0 表示水域。一个岛屿是指由上下左右相连的陆地,并且被水域包围的区域。 你可以假设地图的四周都是水域。 例一: 11110 11010 11000 00
阅读全文
摘要:李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理 问题 简单介绍 ARC 以及 ARC 实现的原理。 考查点 ARC 是苹果在 WWDC 2011 提出来的技术,因此很多新入行的同学可能对此技术细节并不熟悉。但是,虽然 ARC 极大地简化了我们的内存管理工作,但是引用计数这种内
阅读全文
摘要:李洪强iOS经典面试题31-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式。 那么,ARC 和垃圾回收对比,有什么优点和缺点? 考查点 此题其实是考查大家的知识面,虽然做 iOS 开发并不需要用到垃圾回收这种内存管理机
阅读全文
摘要:iOS音频合并 最近遇到一个需求,客户录音试听一下可以,就继续向下录制,当客户录制完成后,需要把前面录制的试听音频和后面的音频进行合并.最初想到的方法,使用NSData对两个音频文件进行合并,但是合并后,音频文件确实变大了,但是只能播放第一个音频. 这应该怎么办呢? 其实AVFoundation框架
阅读全文
摘要:Macbook小问题 有时候 AppStore 和 Safari,QQ等 无法上网,但 chrome 却是正常的。解决办法:终端输入如下命令,其实是在 kill 掉网卡进程。 sudo killall -9 networkd # 如果上不去,再来一次 # 或者执行如下: sudo launchctl
阅读全文
摘要:weex-iOS集成 weex只是刚刚起步,还存在一些bug,有些功能还有待完善和提高.但是其使用起来还是可以节省些时间. 这里我们说说如何把weex集成到我们的iOS项目中 1. 下载weex源代码 git clone https://github.com/alibaba/weex.git 2.
阅读全文
摘要:WEEX快速入门 WEEX 是阿里推送的一款基于Node.js,轻量级的移动端跨平台动态性技术解决方案,用于构建原生的速度的跨平台APP. 1. 搭建WEEX环境 1.1 首先下载安装Node.js,MAC版下载 1.2 安装 weex-toolkit(WEEX工具包) 终端执行 sudo npm
阅读全文
摘要:Mac上Nginx-增加对HLS的支持 我们在Mac上搭建直播服务器Nginx说了如何在Mac搭建视频直播服务器Nginx,对RTMP推流和RTMP拉流的支持.接下来说说如何增加对HLS的支持. 在Nginx增加对HLS种支持比较简单,只是简单的修改下配置文件nginx.conf即可. 1. 打开配
阅读全文
摘要:iOS直播-基于RTMP的视频推送 所谓的视频推送就是把摄像头和麦克风捕获到视频和音频推送到直播服务器上.我们这里使用推送协议是RTMP协议. 扩展:腾讯直播平台,阿里直播平台,百度直播平台提供均为RTMP的推流和HLS/RTMP等拉流.我们使用GDLiveStreaming来实现iOS的端的视频推
阅读全文
摘要:iOS直播-播放基于RTMP协议的视频 流媒体协议介绍 1. 伪流媒体: 渐进式下载 : 边下边存, 文件会保存 使用http协议,也能够实现视频播放, 也能快进快退等, 体验上跟流媒体很像. 优酷, 土豆.这些网址就在使用这项技术. 特点:实现简单, 成本也低 2 流媒体: 边下边播, 不会保存文
阅读全文
摘要:1. cocoa pods 升级遇到的问题 运行 sudo gem update --system 报错 Updating rubygems-update ERROR: While executing gem ... (Errno::EPERM) Operation not permitted -
阅读全文
摘要:友盟统计与崩溃日志 友盟统计,包含:用户分析: 新增用户、活跃用户、启动次数等;留存统计:留存用户、用户新鲜度,用户活跃度;用户参与度:使用时长,使用频率统计,访问页面,使用间隔等。在友盟统计中默认开启了崩溃日志。 广告标识符 广告标识符 (IDFA) 是每台 iOS 设备的唯一 ID,是投放定向广
阅读全文
摘要:Mac上搭建直播服务器Nginx 1.安装Homebrew,执行命令 Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器 /usr/bin/ruby -e "$(curl -fsSL
阅读全文
摘要:一些小功能实现 1. 代码旋转屏幕 [[UIDevice currentDevice] setValue:@(UIDeviceOrientationLandscapeLeft) forKey:@"orientation"]; 2. 默认使用导航控制器包裹的控制器上第一个(从里到外,从上到下的添加顺序
阅读全文
摘要:蓝牙(CoreBluetooth)-外部设备(服务端) 主要内容 1. 创建外部管理器对象 2. 设置本地外设的服务和特征 3. 添加服务和特征到到你的设置的数据库中 4. 向外公布你的的服务 5. 相应来自连接上的中心设备的请求 6. 向订阅了特征值改变的中心设备发送通知 1. 创建外设管理器 首
阅读全文
摘要:蓝牙(CoreBluetooth)-中心设备(客户端) 蓝牙客户端-中心设备 主要内容 1. 创建`中央管理器` 2. 发现并且连接外设 3. 寻找连接上的外设数据 4. 发送读或写`特征值`的请求 5. 订阅外设特征值 1. 创建中心管理器 因为CBCentralManager代表着本地中央设备,
阅读全文
摘要:蓝牙(CoreBluetooth)-概述 通过此框架可以让你的Mac和iOS应用程序与外部蓝牙设备通信 外部设备: 就是需要通过iOS App控制器的其他设备: 例如:心率检测仪、数字温控器 蓝牙通讯是基于传统的CS结构:客户端(中心设备)—-服务器(外部设备) 中心设备: 我们手机的App 外部设
阅读全文
摘要:KVC之-(id)valueForKey:(NSString *)key的实现原理与验证 2.-(id)valueForKey:(NSString *)key的实现原理与验证; #功能:使用一个字符串类型的属性标示符,获取一个属性的值,支持普通对象和NSSet,NSArray集合对象,如果是NSAr
阅读全文
摘要:KVC之-setValue:forKey:方法实现原理与验证 - (void)setValue:(id)value forKey:(NSString *)key方法,实现原理与验证 功能:使用一个字符串标示符给一个对象的属性赋值.它支持普通对象和集合对象 这个方法的默认实现如下: (1).首先去接收
阅读全文
摘要:李洪强iOS开发之iOS学习方法收集 在这里收集一些iOS学习方法,会不断更新
阅读全文
摘要:李洪强iOS开发之iOS好文章收集 该文收集朋友们转发或自己的写的技术文章,如果你也有相关的好文章,欢迎留言,当好文章多的时候,我会对这些好文章进行分门别类
阅读全文
摘要:李洪强IOS开发之iOS好项目收集 在这里收集一些最近出现的比较实用好玩的框架或者项目,会不断更新
阅读全文
摘要:李洪强iOS开发之iOS技术博客 注意:访问博客请直接点击博客,不要点击后面的RSS地址
阅读全文
摘要:李洪强iOS经典面试题30-一个区分度很大的面试题 考察一个面试者基础咋样,基本上问一个 @property 就够了: @property 后面可以有哪些修饰符? 线程安全的: atomic,nonatomic 访问权限的 readonly,readwrite 内存管理(ARC) assign,st
阅读全文
摘要:今天维护一个项目的时候,我新添加了一个库,运行的时候报错了: ios property has a previous declaration 上网查了一下没有找到思路,不过根据提示自己试了一下,原来这个项目之前就有这个库,这个错误意思是 你之前就已经定义过这个属性然后把其中的一个删除掉就可以了! 问
阅读全文
摘要:苹果正在逐渐淘汰 32 位应用,而且会在今年秋天完成。根据知名开发者 Steven Troughton-Smith 透露,苹果会在 iOS 11 发布后,停止支持 32 位应用。这意味着 App Store 中所有的 32 位应用将无法正常运行。 当然,对于开发者和用户来说,苹果这个决定并不是太意外
阅读全文
摘要:前言 今天做项目的时候,发现一个第三方库,可以解决键盘遮盖输入框的问题,之前我都是自己写代码实现这个功能,才知道有这个库,以后开发更方便了 每一个iOS应用的开发者在工作中都会遇到需要用户键盘输入数据的需求,而输入框 (UITextField/UITextView)的父界面可能是普通的UIView,
阅读全文