iOS开发笔记
文章平均质量分 50
胜哥的二哥
胜哥的千里之路!
展开
-
Architectures、Valid Architectures和Build Active Architecture Only
报错:Architectures、Valid Architectures和Build Active Architecture Only分别指:iOS的App现在基本都是用llvm在编译,Xcode也提供了各种设置帮助你进行编译参数的设定。里面有一项就是设定编译的体系结构,涉及到的参数包括:Architectures、Valid Architectures和Build原创 2016-12-09 15:02:48 · 373 阅读 · 0 评论 -
bitcode
报错信息:‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’does not contain bitcode. You must rebuild it with bitcode enabled (Xcodesetting ENABLE_BITCODE), obtain an updated l原创 2016-12-09 14:36:27 · 333 阅读 · 0 评论 -
iOS 通过(lame)将录制音频转换成Mp3
为了iPhone 与 Android 实现音频互通. Mp3格式的音频文件再好不过了.这里主要用到lame(Mp3音频编码器). 首先使用 AVAudioRecorder 进行音频录制之前,进行如下参数设置:(一定要设置成pcm线性编码格式)// 定义音频的编码参数, 决定录制音频文件的格式, 音质, 容量大小等, 建议采用AAC的编码方式 let record原创 2016-12-08 15:18:42 · 660 阅读 · 0 评论 -
Swift与OC中拷贝与可变性总结
Objective-C为了解释方便,定义两个类:Person和MyObject,它们都继承自NSObject。他们的关系如下:// Person.h@property (strong, nonatomic, nullable) MyObject *object;// MyObjec.h@property (copy, nonatomic) NSString *name转载 2016-12-08 15:14:40 · 698 阅读 · 0 评论 -
You Must Rebuild It With Bitcode Enabled (Xcode Setting ENABLE_BITCODE) 解决方案
引入一个第三方库,竟然运行不起来。报错如下:Xcode7.0以上默认是开启Enable Bitcode的,如果你导入的一些第三方库在编译的时候没有Enable Bitcode 的话,就会导致报错。解决方法有两种:方法一:使用Enable Bitcode的第三方库方法二:将工程中的Enable Bitcode设置为NO简书博客地址https:/原创 2016-12-07 18:49:56 · 669 阅读 · 0 评论 -
查看Xcode编译时间
最近工程因为代码增多, 编译越来越慢, 为了更快编译, 找出了下面的方法,通过查看各部分代码的编译时间消耗长短,针对性的优化代码1.首先到Build Setting中搜索: Other Swift Flags2.然后分别在几个条目中添加命令: -Xfrontend -debug-time-function-bodies完成后如下图:3.编译时,在如下位置点击bu原创 2016-11-16 16:06:28 · 4297 阅读 · 6 评论 -
app的登录认证与安全
一、登录机制粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认。 登录认保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。登出是指客户端主动退出登录状态。容易想到的方案是,客户端登录成功后, 服务器为其分配sessionId, 客户端随后每转载 2016-11-03 20:18:18 · 1514 阅读 · 0 评论 -
终端创建.html文件, 移到xcode中
打开终端输入:1.ls2.cd Desktop/3.vi test.html接下来跟导入第三方一样,4.依次输入esc5.:wq到这边就已经在桌面生成test.html的文件了.再把该文件拖到工程中, 然后粘上所需要的html的代码, 这样就可以在工程中用该html文件了.其实用工程里其他的模板, 比如说空模板等, 将点后面的改成html, 删除里面的代码,原创 2016-06-21 21:20:32 · 1258 阅读 · 0 评论 -
cocoapods用法及遇到的问题解决
CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,转载 2016-06-16 13:56:38 · 445 阅读 · 0 评论 -
贝赛尔曲线实现圆形进度条
引言在做音频项目的时候,播放音频需要显示圆形进度条。今天,教大家如何简单地实现进度条效果!其实,实现这种效果并不困难。前提是需要了解UIBezierPath。当然,之前在实现高级动画-圆形树展开、收起动画一文中教了大家如何实现渐变圆形进度条,那是采用mask来实现的。不过,今天教大家做的效果,并没有使用mask,而是直接使用UIBezierPath来实现。实转载 2016-06-14 10:27:36 · 868 阅读 · 0 评论 -
Call can throw, but it is not marked with 'try' and the error is not handled
当代码提示后有throws时, 需要有抛出异常的操作这样写会报错self.player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: self.mp3Path!), fileTypeHint: "mp3")用 try - catch 就好了do { self.player =try AVAudioPla原创 2016-12-09 18:17:00 · 1215 阅读 · 0 评论 -
真机的沙盒拷贝到电脑
点击顶部栏中的window, 选择Devices在Devices弹框中选中要导出沙盒的app图标, 然后点击设置的图标, 选择Download简书博客地址https://www.jianshu.com/u/3c7c13f3dc6b原创 2016-12-09 18:29:48 · 1767 阅读 · 0 评论 -
iphone模拟不同的网络状态
手机测试的时候经常需要模拟不同的网络状态,好多宝宝都把手机拿到远离路由的地方来测试强弱信号下app的性能(其中有木有你呢?),那么如何才能坐在位置上不动就能测试呢?首先打开手机设置点击开发者进入然后点击Status打开Enable此时手机就可以根据你下面的网络状态选项的选择进行模拟了每个选项代表含义配置说明原创 2017-03-06 12:03:25 · 1414 阅读 · 0 评论 -
长按二维码识别
直接上代码 // 二维码识别 fileprivate func recoginzeQRCode(_ image: UIImage) -> String? { // 创建二维码探测器 //1.初始化扫描仪,设置设别类型和识别质量 let detector = CIDetector(ofType: CIDetectorTypeQ原创 2017-08-18 10:33:20 · 1538 阅读 · 0 评论 -
wav和amr互转
苹果录音的格式为wav, 该格式文件体积较大(10秒100k左右), 为了缩小体积同时兼顾安卓, 可以将其转换成amr格式(能将100k缩小至10k左右, 安卓能播放amr格式, 苹果于ios4.3以后便不支持amr)本文通过opencore-arm(下载最新库文件)将wav转换为amropencore-amr下载后1.首先新建一个文件夹,将下载到的opencore-amr原创 2017-05-19 11:04:33 · 9396 阅读 · 0 评论 -
计步器
如今不少应用中加入了健康这个模块, 像微信一样展示每天运动步数或其他数据, 那么我们如何获取这些数据呢?新建一个manager类, 代码及注释如下:import UIKitimport HealthKittypealias completion = (_ success: Bool, _ error: Error?) -> Voidtypealias totalClosure原创 2017-08-18 10:26:36 · 332 阅读 · 0 评论 -
iOS开发随笔
1.Swift中引用OC文件时, 头文件名字需是这样的格式: SGRecordTest_Bridging_Header_h2.cannot convert value of type 'Void' (aka'()') to type String 是告诉我们不能让Viod的值取作为String, 有可能函数没有返回值3.CoreText: *** Unmapped "?\uFE0F"原创 2017-03-30 11:12:20 · 492 阅读 · 0 评论 -
将本机设置为服务器(mac)
1.下载node.js, 并安装2.打开终端输入sudo npm install anywhere -g 如果不行输入npm install anywhere -g 直至结束3.输入cd 文件路径(拖入想要放在服务器的文件)4.输入anywhere 端口号(8000-8100)如此便将本机作为服务器, 并可以让其他设备访问服务器上的内容了简书博客地址https://www原创 2017-03-24 16:59:25 · 1904 阅读 · 0 评论 -
可拖动的Button
根据拖动手势实时位置实现可拖动的Button直接上代码:/// 可以随意拖动位置的按钮组件class SGMoveButton: UIButton{ // MARK: - properties var parentView:UIView?; // MARK: - life cycle override init(frame:CGRect)原创 2017-01-13 10:03:26 · 2044 阅读 · 0 评论 -
IJKPlayer使用
直播拉流:按照https://github.com/Bilibili/ijkplayer上的readme将IJKPlayer打包好,(已打包好的https://pan.baidu.com/s/1c1kB3S 提取码: 32hn)将打包好的IJKPlayer包拖入工程(是oc的, 引入头文件; 是swift的, 建立桥文件), 导入相应的库:在控制器中写入如下代码(基本设置代码, 如原创 2017-01-06 17:08:07 · 1967 阅读 · 0 评论 -
Undefined symbols for architecture x86_64
用IJKPlayer做直播的时候, 新建一个工程, 单独拖入IJKMediaFramework库的时候报错, 如下:其实并不是如报错提示"该库不支持64架构", 而是缺少相关的库, 用IJKPlayer的时候还需要在Build Phases导入如下相关的库:到IJKPlayer的git上一看原来写的很清楚要这些库支持附上IJKPlayer的git地址:htt原创 2017-01-06 15:36:43 · 461 阅读 · 0 评论 -
视图控制器上添加另一个控制器的View
//创建UIPageViewControllerlet pageViewController:UIPageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil);//将UIPageViewController添加到试图控制原创 2016-12-30 14:49:30 · 1618 阅读 · 0 评论 -
查看真机中应用程序的文件
有时候开发调试时,需要查看真机中应用的文件,比如Sqlite之类的,可按以下步骤进行:1)点击Xcode左上方的Window,再选择Devices ,打开设备一览。2)选中应用, 点击下方的设置按钮, Download下载,把应用数据下载到Mac上,生成一个.xcapp文件。3)在.xcapp文件上点击右键,选择Show package contents 查原创 2016-12-30 10:16:08 · 430 阅读 · 0 评论 -
view添加到NavigationBar上
方法一:self.navigationItem.titleView=titleView方法二:self.navigationController?.view.addSubview(titleView)简书博客地址https://www.jianshu.com/u/3c7c13f3dc6b原创 2016-12-29 17:27:59 · 1860 阅读 · 0 评论 -
CADisplayLink
CADisplayLink转载 2016-11-29 10:09:31 · 303 阅读 · 0 评论