- 博客(69)
- 资源 (4)
- 收藏
- 关注
原创 swift ReactiveSwift框架下通知(NotificationCenter)的使用
实现:NotificationCenter.default.post(name: Notification.Name(rawValue: "NotificationName"), object: object)注册:NotificationCenter.default.reactive.notifications(forName: Notification.Name(rawValu...
2018-11-28 10:40:28
796
原创 ios 多选菜单
以前的时候自己闲暇没事做了个多选菜单的view,在cocoachina上边以前传了一份,跑了一下现在还能用,用oc写的,以后会做一个swift版本,代码简单,有可以改进的地方,希望指正下载链接:https://download.csdn.net/download/u012490014/10740315...
2018-10-24 14:31:53
960
转载 swift 之空合运算符(Nil Coalescing Operator)
空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b.这个运算符有两个条件:1.表达式a必须是Optional类型2.默认值b的类型必须要和a存储值的类型保持一致空合并运算符是对以下代码的简短表达方法:a != nil ? a! : b上述代码使用了三目运算符。当可选类型a的值不为空时,进行强制解封(a!)访问a中值,反之当a...
2018-10-22 17:20:35
544
原创 安装、升级Homebrew遇到Permission denied
今天更新Carthage,需要用到brew upgrade carthage但是遇到了由于权限问题,没成功,还以为是brew版本太低,就删除重装了Homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"但是试了好多次都出现下...
2018-10-19 14:47:00
3203
原创 iOS 讯飞语音之语音听写 录音的实现
引入库第一步 获取appidappid是第三方应用集成讯飞开放平台SDK的身份标识,SDK静态库和appid是绑定的,每款应用必须保持唯一,否则会出现10407错误码。appid在开放平台申请应用时可以获得,下载SDK后可从SDK中sample文件夹的Demo工程里找到(例如: /sample/MSCDemo/MSCDemo/Definition.h 的APPID_VALUE)第二步 工程配置引入...
2018-06-25 11:31:26
2082
1
原创 控制wkwebview的缩放
有的时候需求所需,不允许wkwebview页面手指捏合放大和缩小,控制wkwebview页面的放大和缩小有两种方法第一种设置webview.scrollview.delegage = self;_webView.scrollView.delegate = self;添加- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scroll...
2018-06-21 10:02:30
6102
原创 iOS wkwebview 加载html
wkwebview的优势1.交互更方便2.更低的内存占用3.高达60fps的滚动刷新率以及内置手势4.支持更多的HTML5特性5.基于webkit,支持Nitro JavaScript引擎6.提供常用的属性,如加载网页进度的属性estimatedProgresswkwebview的使用首先需要引入头文件#import <WebKit/WebKit.h>js调用oc配置configura...
2018-06-01 10:50:23
4302
原创 iOS 多语言RTL 方向布局
在做国际化适配的时候,有时候会遇到一些坑,大部分国家的书写以及排列习惯都是从左往右,是LTR方向布局,而对于一些阿拉伯国家,文字的书写以及展示的顺序都是从右往左方向的。 做个实验,建一个简单的工程,并在英文环境下运行结果:把模拟器改成阿拉伯语环境下再次运行:...
2018-05-17 15:58:49
4010
原创 iOS copy和mutablecopy
就单纯的自己定义的类来说,copy和mutablecopy,与浅拷贝和深拷贝没有什么关系,关键是自己怎么实现NSCopying和NSMutableCopying这两个协议,如果协议实现的的时候只是拷贝指针,那就是浅拷贝,如果又申请一块内存并且把内容复制,那就是深拷贝,但是对于系统自带的容器类和NSString就要另外分了,因为协议的实现我们是看不到的,所以只能测试NSString首先测试N...
2018-05-11 16:37:30
534
原创 iOS 并行队列、串行队列和线程
在开发过程中经常用到队列和线程结合使用,给队列中添加任务有四种使用方法:串行队列中执行同步任务、串行队列中执行异步任务、并行队列中执行同步任务、并行队列中执行异步任务,还有主队列,下面先说下主队列主队列主队列:专门负责调度主线程度的任务,没有办法开辟新的线程。所以,在主队列下的任务不管是异步任务还是同步任务都不会开辟线程,任务只会在主线程顺序执行。主队列异步任务主队列中放入异步任务,不是马上执行,...
2018-05-10 14:34:08
3533
原创 iOS AR 高通Vuforia —— 更换teapot模型
接入高通AR之后不管识别什么都是teapot茶壶模型,就试着换了一个第一步 h文件 在https://free3d.com/3d-models/中下载一个免费的3D模型,然后把obj2opengl.pl文件和下载的obj文件放到同一个目录下,用终端,cd到该目录,在终端中输入:perl obj2opengl.pl obj文件名.obj,得到.h文件第二步 把得到的h文件引入自己的项目...
2018-04-28 15:12:02
540
原创 iOS AR 高通Vuforia —— 获取摄像头帧图片
最近有一个获取Vuforia 框架下摄像头的帧图片的需求就研究了一下,其实官方是有相关API的,里面有java和c++两种语言https://library.vuforia.com/articles/Solution/Working-with-the-Camera#How-To-Access-the-Camera-Image-in-Native(有一点不好的是,官方给的地址会变,以前的版本和现在的...
2018-04-28 14:15:10
1141
原创 清除mac中的垃圾文件
清除mac中的垃圾文件最近工作用mac要升级最新系统,但是内存不够,打开关于本机发现系统居然占用了200多G的空间(已经清掉了50个G了)但是系统中的东西是想要找出是哪一块占用大量内存是比较麻烦的事情,刚开始使用终端查看内存占用情况du -sh * (只能查看有权限访问的)可以下载一个磁盘工具来扫描磁盘的使用情况,omnidisksweeper也是只能扫
2018-02-06 11:38:49
1936
转载 关于目前自己iOS项目使用的第三方开源库
1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单。 3.MBProgressHUD 也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading。建议封装在Base
2015-12-14 14:52:26
704
原创 iOS 开发笔记(一)
一 崩溃日志 有时候我们会遇到在设备上、模拟器上运行完好,但是上线之后会遇到闪退的问题,但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。有几种方法可以从设备上获取崩溃日志。设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上。根据电脑操作系统的不同,崩溃日志将保存在以下位置:M
2015-10-08 16:58:01
629
原创 oc 和swift混编的时候打包ipa安装不了
做了一个oc项目,里面有用到swift第三方,真机运行的时候是正常的,用企业级证书打包成ipa之后安装完成之后闪退,通过导出手机log日志发现错误提示:Dyld Error Message: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Containers/Bu
2015-08-11 15:56:20
2093
1
原创 ios 修改工程名称,程序名称(xcode6.3)
第一步:修改工程文件夹名称第二步:打开新文件夹,将.xcodeproj更名,右键点击.xcodeproj并选择Show package contents,弹出一个对话框包含了几个文件.(事实上.xcodeproj是这几个文件打成的包)第三步:用textEdit打开 project.pbxproj文件,将所有旧名字替换成为新的第四步:把相应的文件夹名改成工
2015-05-22 16:55:42
1449
原创 ios 协议(delegate)使用过程中遇到assign attribute must be unsafeunretained
今天在使用协议的过程中,偶然发现这样使用@interface AppDelegate (){ id testdelegate;}@property (nonatomic , assign) id testdelegate;@end@implementation AppDelegate@synthesize testdelegate;会报错:Existing i
2015-03-30 15:06:16
1906
原创 ios (推送之远程推送)升级成ios8系统之后有些程序接收不到远程推送
维护一个程序,当手机升级到ios8之后就不能接收到远程推送,显示注册失败,查了下资料,原来是没有获取用户许可,加了个方法试了下,okif ([[[UIDevice currentDevice]systemVersion ]integerValue] >= 8) { UIUserNotificationSettings*setting = [UIUserNoti
2015-01-22 19:39:50
2151
原创 iPhone6/6Plus下app状态栏内容放大问题处理,
其实就是需要为iPhone6和iPhone6Plus加上相应尺寸的启动图片。图片的分辨率如下:LaunchImage图片(必加):iPhone6: LaunchImage-667h@2x.png 750*1344iPhone6Plus:LaunchImage-Portrait-736h@3x.png 1242*2208(如果有竖屏)
2015-01-14 19:11:45
1795
转载 ios (推送之远程推送)NSLocalizedDescription=未找到应用程序的“aps-environment”的权利字符串
获取deviceToken的时候,应用程序报出下面的错误:Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的权利字符串" UserInfo=0x118e60 {NSLocalizedDescription=未找到应用程序的“aps-enviro
2015-01-09 18:40:13
5544
转载 iOS(推送)小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介(1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请。若注册成功,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceTok
2015-01-09 16:59:59
853
原创 ios (推送)之本地推送
iOS上有两种消息通知,一种是本地消息(Local Notification),一种是远程消息(Push Notification,也叫Remote Notification),设计这两种通知的目的都是为了提醒用户,现在有些什么新鲜的事情发生了,吸引用户重新打开应用。本地推送也可以通过服务器控制,比如说如果有新消息了,推送消息,但是,前提是程序必须是打开的,而远程推送,是通过苹果APNS服务器,推
2015-01-08 18:45:49
1768
原创 ios (Quartz 2D绘图)各种绘图方式及相机的使用
一:具体使用的细节,本人也是参考http://blog.163.com/wkyuyang_001/blog/static/10802122820133190545227/下面介绍具体使用Quartz 2D绘图实现画图板功能.m文件中,dog的实现如连接中所示一样的#import "drawTestView.h"#import "Dog.h"@implementation dr
2015-01-07 18:35:04
1390
转载 ios (Quartz 2D绘图) UIImage,CGImage和CGImageRef有什么区别
CGImage和CGImageRef这两个应当是用来重绘图形的类,它们在应用时是按照图像的像素矩阵来绘制图片的,它们可以用来处理bitmap。CGImageRef与UIImage的互转 CGImageRef转换成UIImage CGImageRefiOffscreen = CGBitmapContextCreateImage(context);UIImage
2015-01-07 14:55:33
1719
原创 ios 数据持久化之magical record(基于coredata)
//gcd //以下是异步执行,如果是同步的话,会另外开辟一个栈,然会把队列都放里面,按照顺序执行,如果发生阻塞也与主线程无关 //后台执行// dispatch_get_global_queue(0, 0);//第一个参数是优先级,第二个参数是系统保留参数 dispatch_async(dispatch_get_global_queue(0,0), ^
2015-01-06 20:00:33
1412
原创 ios(CoreAnimation核心动画 一) CABasicAnimation动画与锚点
一、position和anchorPointposition:用来设置CALayer在父层中的位置,以父层的左上角为原点(0, 0)anchorPoint(锚点):称为“定位点”、“锚点”决定着CALayer身上的哪个点会在position属性所指的位置以自己的左上角为原点(0, 0)它的x、y取值范围都是0~1,默认值为(0.5, 0.5)推荐一个连接:htt
2015-01-06 19:45:21
3887
原创 ios 遍历数组的方法
目前所知有七种方法 //第一种 [arr enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop){ NSLog(@"%ld,%@",idx,[arr objectAtIndex:idx]); }]; //第二种 dispatch_apply([arr count
2015-01-05 18:55:51
2185
原创 ios 中scrollview的 bounce属性与view中的clipsTobounds属性
一:scrollview的 bounce属性当scrollview滚动到边界时,再继续滚动会有个反弹的效果,scrollview里有bounce属性,当设置为yes时,可以反弹,设置为NO时不能反弹,请问,能不能使得它只有一个边界能反弹呢,这个作用可以用来实现在一个scrollview里添加tableview与scrollview可以连续滑动,也就是,当table滑动到底时scrollview
2015-01-05 11:09:16
9616
转载 iOS截屏代码
1.普通界面/** *截图功能 */-(void)screenShot{ UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0); //设置截屏大小 [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()]
2015-01-04 11:17:19
2030
转载 iOS开发的22个奇谲巧技
今天看到一些有用的ios开发技巧,感觉不错,转来收藏分享1. TableView不显示没内容的Cell怎么办?类似于图1,我不想让下面的那些空显示。很简单,添加“self.tableView.tableFooterView = [[UIView alloc] init];”试过都说好,加完这句之后就变成了图2的样子。2. 自定义了leftBarbuttonIte
2014-12-30 09:56:27
1069
转载 NSOperationQueue与GCD的使用原则和场景
首先,我们要明确NSOperationQueue与GCD之间的关系NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象。其次,我们要区别两者的不同GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-
2014-12-29 11:00:28
984
原创 ios coredata的用法和利弊
第一部分coredata的用法先建立一个使用use coredata的工程,在。xcdatamodeld文件中建立表格并为表格添加属性为表格添加关系,下一步生成表格model其中生成的model:User和Department里面的属性用的是@dynamic@property有两个对应的词,一个是@synthesize,一个是@dyn
2014-12-24 20:34:29
1753
原创 用终端查询数据库sqlite(自己创建的,或者是用coredata创建的)里的东西
首先需要知道数据库的路径,coredata创建的一般都是放在沙盒Documents文件夹中,而自己建的就看自己了,sqlite3 #数据库路径# //进入数据库.tables //查看数据库中的表.schema //进入具体的表,显示表结构select * from #表名#go //显示表信息如图(查看coredat
2014-12-23 16:42:07
2262
原创 32位,64位操作系统下基本数据类型字节大小
c语言中基本数据类型的长度:32位下:char :1个字节(不变)*(指针变量): 4个字节(32位机的寻址空间是4个字节。同理64位编译器)(变化)short int : 2个字节(不变)int: 4个字节(不变)unsigned int : 4个字节(不变)float: 4个字节(不变)double: 8个字节(不变)long: 4个字节(变化)un
2014-12-22 11:44:36
4360
转载 ios 判断字符串中是否有中文
//判断是否有中文-(BOOL)IsChinese:(NSString *)str { for(int i=0; i){ int a = [str characterAtIndex:i]; if( a > 0x4e00 && a 0x9fff) { return YES; }
2014-12-20 09:28:51
4459
原创 ios 单元测试初识(XCTestCase)
今天偶尔碰到了单元测试的相关内容,就了解了一下,感觉比较好用:单元测试就是面试中经常问到的TDD(Test Driven Development),xcode4之前测试函数需自己创建,之后xcode5,对单元测试进行了升级,xcode4之前的用法详见:http://www.infoq.com/cn/articles/ios-unit-test-1xcode5之后的用法,特别是xcode
2014-12-19 19:36:24
2091
原创 ios navigationcontroller 滑动返回与webview加载html图片自适应屏幕宽度
1 、ios navigationcontroller 滑动返回滑动返回是navigationcontroller默认返回按钮自带的功能,如果返回按钮自定义该功能失效,解决的办法有两个: ① self.navigationItem.backBarButtonItem = [[UIBarButtonItemalloc]initWithCustomView:bu
2014-12-18 19:01:00
2673
1
原创 iOS中创建数组的简易方法与手势的使用
其实做外包也是挺不错,虽然累点,但是一天天的知识的扩展不少,下面是今天的收获①初始化数组一字典的方法@[] 初始化不可变数组@{} 初始化不可变字典②手势的使用iOS中处理手势之前是用四个方法:- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event -
2014-11-25 19:34:50
1482
声纹识别系统原理及其关键技术.pdf
2019-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人