- 博客(79)
- 收藏
- 关注
原创 iOS代码组件化(利用CocoaPods创建私有库)
前言,最近因为工作需求,研究了一下代码组件化,中间遇到了很多问题,下面就把结合网上的一些文章和自己的实际操作,梳理一下操作流程,希望能帮到有需要的朋友,中间有需要改正的地方请指正。一、远程索引库什么是远程索引库?每创建一个组件都会带有一个 xxx.podspec 的索引文件。专门用来存放这些索引文件的库就叫做索引库。我们需要将这些索引文件上传到远程索引库才能保证其他的同事能...
2018-05-06 00:12:59
4717
原创 本地代码上传同步到github
本地代码上传同步到github一 、注册github账号在GitHub官网上注册并登陆自己的账号,进入如下页面 接着回来到这个页面 然后会收到一封github发的邮件,进入邮箱验证,初步完成.我们都知道 github上不是随便都能传代码上去的,而是通过一种网络协议——SSH来授权的,那么什么是SSH,这里简单说一下,SSH是一种网络协议,用于计算机之间的加密登录。目前是...
2018-04-27 16:39:06
1311
1
原创 定时器延迟加载
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法。在这个时候,我们就需要用到定时器。然而,在iOS中有很多方法完成以上的任务,到底有多少种方法呢?经过查阅资料,大概有三种方法:NSTimer、CADisplayLink、GCD。接下来我就一一介绍它们的用法。一、NSTimer1. 创建方法NSTimer *timer = [NSTime
2017-06-10 11:19:19
898
原创 iOS多语言适配
1. 基本设置(1)Localizable.strings的Strings File文件第一步: 创建一个名字为Localizable.strings的Strings File文件(名字不可以错).在各个语言文件里面编写自定义的键值对,然后使用系统函数NSLocalizedString(@"自定义的key", "描述可为nil")通过key拿到对应的value值;
2017-06-09 10:27:45
2084
转载 iOS完整的证书申请和打包过程
今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍。证书是什么? 上面这个就是我们申请好证书后,下载到本地的.cer文件,也就是常说的开发证书与发布证书的样式。这.cer文件格式的证书是让开发者使用的设备(也就是你的Mac)有真机调试,发布APP的权限。上面这个就是我们配置好证书后,下载到本地的.mobilepr
2017-05-22 11:45:02
9586
1
原创 iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch (可以替换为视频悬浮窗口)
前提:当时看到别人写过这个类似AssistiveTouch的demo,但是有问题,第一改变不了位置、第二切换页面后无法使用、第三运行时偶尔会崩溃。然后自己就去度娘、论坛中都查了一些资料,然后结合起来写了这么一个demo。思路:实现全局 需要在 AppDelegate.m 文件中 didFinishLaunchingWithOptions 方法里面实现 1、新建一个 继承于 UIWind
2017-04-27 12:18:50
4379
原创 微信第三方登录集成
一、接入微信第三方登录准备工作。移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。(注意)1、下载iOS微信SDK。下载地址2、
2017-03-14 16:56:52
2072
转载 iOS开发之AFNetworking 3.0使用总结
昨天使用Cocoapods导入AFN做POST的时候,导入的最新版的3.0.4,突然发现找不到AFHTTPRequestOperationManager了。。。上github上一看,发现没有这个了。刚开始以为是cocoapods没有给我导进去,因为是小demo,就想自己写一个网络请求的,发现也没有这NSURLConnection了,被弃用了,突然意识到,这个就是AFHTTPRequestOpera
2017-01-11 17:01:20
1105
转载 AFNetworking 3.0迁移指南
AFNetworking 3.0AFNetworking是一款在OS X和iOS下都令人喜爱的网络库。为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于NSURLConnection API的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本。本指南将引导您完成这个过程。
2017-01-11 16:58:49
279
原创 Cornerstore的创建分支与合并主干
(一) 创建分支。从代码库主干(Trunk)创建一个分支,放到branches中。 步骤:选择主干中文件(JJSMOA)右击选择Branch输入分支名称(JJSMOA_V3.0.1)并选择需要存放的位置,默认的是错误的位置,需要重新选择(此处选择^/JJSMOA/branches)点击创建分支即可。 创建完成后,在branch文件夹下面就可以看到刚刚添加的分支文
2016-12-30 16:37:46
1320
转载 Cornerstore的使用介绍
对于我们程序员来说,不管你是大神,还是小鱼小虾,进入公司之后,都用过源码管理工具,不然你就不是一个合格的程序员,现在各个公司用于源码管理工具通常有下面两种:第一种,git:使用git的公司应该是最多的。第二种,svn:目前我们公司使用的就是svn。当然,他们两者的区别,在这里就不做解释了,一般选择用什么源码管理工具,一般会是整个项目的负责人来选择。在iOS开发中,最好用的svn的M
2016-12-30 16:34:49
6063
原创 iOS 迁移到HTTPS(自建证书+单向验证+AF3.0+WKWebView+SDWebImage)
写在前面的提醒 ① 还没到2017,苹果还没确切的说明对HTTPS的要求,所以目前还不确定自建证书到底可不可以通过审核。 ② 网上很多人说自建证书必须禁掉ATS才能正常访问(App Transport Security Settings -> Allow Arbitrary Loads -> YES),但是在我的项目中没有禁掉ATS自建证书是可以正常使用的,欢迎大家讨论原因。
2016-12-16 17:31:30
3940
1
原创 iOS中http转https,及https请求抓包
iOS9推出的时候,苹果希望大家使用https协议,来提高数据传输之间的安全性。下面我就从最简单的代码介绍,如何在工程中设置,来支持https的请求。一、证书准备篇1.证书转换在服务器人员,给你发送的crt证书后,进到证书路径,执行下面语句// openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der这样你就可以得到c
2016-11-28 10:44:49
3367
转载 使用 Charles 获取 https 的数据
我使用的 Charles 版本是 3.11.2,获取下载地址可自行百度,我下面要说的是使用 Charles 获取 https 的数据。1. 配置 Charles 根证书首先打开 Charles:然后如下图操作: 之后会弹出钥匙串,如果不弹出,请自行打开钥匙串,如下图:系统默认是不信任 Charles 的证书的,此时对证书右键,在弹出的下拉菜单中选择『显示简介』,
2016-11-17 09:57:08
386
原创 SDWebImage 加载网络图片不能显示
iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输。直接造成的情况就是App发请求的时候弹出网络无法连接。解决办法就是在项目的info.plist 文件里加上如下节点:在info.plist文件中加入此节点就可以加载出网络图片了。
2016-11-15 16:32:23
3191
原创 WKWebView替换WebView体会总结
一.引言最近应公司要求,把项目里用到的UIWebView全都用WKWebView替换掉。于是就去研究了WKWebview,加上在使用中遇到的一些问题加以总结,如有不足之处,还望指出,本人将会加以修改。UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存,且内
2016-11-04 11:35:12
5519
转载 CADisplayLink
什么是CADisplayLinkCADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。我们在应用中创建一个新的 CADisplayLink 对象,把它添加到一个runloop中,并给它提供一个target 和selector 在屏幕刷新的时候调用。一但 CADisplayLink 以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runl
2016-10-27 11:58:41
317
原创 UITextField 密码明文及密文切换问题
1. 使用UITextField设置明文及密文之间切换后,光标的位置可能会出现偏移出错(因为密文方式占位符更宽一点)。这个应该是UITextField这个控件本身的问题,但这个问题在iOS10系统就没有了,好像苹果已经做了更改,下面的解决办法是针对除了iOS10系统适配的调整。在明文/密文切换的事件里面,加多几句话://显示和隐藏登录视图的密码。-(void)sho
2016-10-18 17:26:52
9029
原创 None of the valid provisioning profiles allowed the specified entitlements(有关不同版本xcode之间切换编译代码问题)
今天在打包提交App Store的时候遇到了这样的问题刚开始以为证书问题,该改的都改了都没解决,查了一天的资料,最后是因为自己在同一台电脑,用xcode8和xcode7编译了同一份代码,用xcode8编译以后就会多一些配置文件,而我遇到的这个问题是因为多了下图所示的东西:原来Xcode7中是Code Signing Entitlements后面的参数是空的,所以我在删除了这
2016-10-13 18:37:53
1802
转载 苹果iOS系统下检查第三方APP是否安装及跳转启动
在iOS系统,使用Url Scheme框架在APP间互相跳转和传递数据,本文只介绍如果检测和跳转。Url Scheme框架 如果你想知道ios设备中是否安装QQ这个软件,我们可以通过一个简单方法判断到if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"mqq://"]]){
2016-10-11 15:52:43
3538
原创 判断是否安装APP(如新浪,微信,QQ)
一、判断是否安装了微信客户端1、在.m文件中到入头文件:#import "WXApi.h"2、调用是否安装了微信的方法isWXAppInstalled: if ([WXApi isWXAppInstalled]) { NSLog(@"安装了微信"); }二、判断是否安装了QQ客户端1、在.m文件中到入头文件:#im
2016-10-11 15:47:18
6625
转载 兼容iOS 10
1.Notification(通知)自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserNotifications的易用,功能也变得非常强大。iOS 9 以前的通知1.在调用方法时,有些方法让人很难区分,容易写错方法,这让开发者有时候很苦恼。2.应用在运行时和非运行时捕获通知
2016-09-18 14:32:39
423
转载 iOS开发 适配iOS10以及Xcode8
现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木有下载过来试试呢?就我的使用来说,总体觉得苹果还是坑不断,但是也在一直进步的啦。下面我就来说说,iOS10的适配以及Xcode8使用上的一些注意点。一、证书管理用Xcode8
2016-09-18 14:29:11
697
2
原创 stringByAddingPercentEncodingWithAllowedCharacters和CFURLCreateStringByAddingPercentEscapes的使用
在iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的 http://unmi.cc?p1=%+&sdf&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问。在Objective-C 语言中,你可以试下1、stringByAddingPercentEncodingWithAllowedCharacters的使用
2016-08-25 22:45:26
12073
原创 监听键盘位置,使输入框跟随键盘移动
第一步,注册Keyboard通知(在ViewDidLoad中或者viewWillAppear中注册)[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil
2016-08-18 21:24:37
703
原创 实现UITextField值变化的实时监视
原来认为这个是很简单的基本问题,上网搜索以后发现基本的处理方法大概有四种1、KVO方式[textField addObserver:self forKeyPath:@"text" options:0 context:nil];2、直接添加监视[textField addTarget:self action:@selector(valueChanged:) forControlE
2016-08-18 14:26:46
3586
原创 iOS中的UIlabel在html中显示文字(特殊字符显示为&hellip,¥等样式)
NSString * htmlString = @" html的文字 \n这里填写内容";NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeD
2016-08-14 20:34:29
2594
1
原创 当cell中有UItextfiled时,弹出键盘把tableview往上顶
- (void)registerForKeyboardNotifications { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil]; [[NSNo
2016-08-12 16:30:54
1068
转载 升级cocoapods的Ruby镜像版本
因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7。所以需要对Ruby进行升级。这里使用RVM对Ruby进行升级,升级过程如下:1、安装 RVMRVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)$
2016-08-10 01:06:19
293
原创 给手势UITapGestureRecognizer绑定tag
今天用到给手势绑定tag,在网上搜了一些,但大多数都是下面这一种:UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(whenClickImage:)]; [_firstImage
2016-07-29 18:16:43
1167
原创 NSString 字符串处理:截取字符串、匹配字符串、分隔字符串
1.截取字符串NSString*string =@"sdfsfsfsAdfsdf";string = [string substringToIndex:7];//截取掉下标7之后的字符串NSLog(@"截取的值为:%@",string);[string substringFromIndex:2];//截取掉下标2之前的字符串NSLog(@"截取的值为:%@",string)
2016-07-29 14:16:44
360
转载 [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因此,我们
2016-07-28 10:17:56
238
原创 userInteractionEnabled交互性
当前视图设为view=bigimgView.userInteractionEnabled=NO时,当前视图不可交互,该视图上面的子视图也不可交互(不可响应),响应事件传递到下面的父视图。当前视图设为view=bigimgView.userInteractionEnabled=YES时,当前视图可交互,该视图上面的子视图可以交互(可以响应),下面的父视图不会接收到响应。uiimagevi
2016-07-15 20:27:07
672
原创 iOS中try-catch-finally捕获异常使用
这也是自己在用到的时候搜集别人的资料总结的,希望能帮到大家!可能在iOS中不太经常用到,但是了解一下还是没坏处@try{代码块1(可能出现异常的语句)//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } @catch(Exception e){代码块2(发生异常时进行处理)//除非try里面执行代码发生了异常,否则这
2016-06-28 16:48:42
1623
原创 正则表达式的认识
一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。 二、正则表达式的语法 看一个过滤纯数字的例子- (BOOL)validateNumber:(NSString *) textString{ NSS
2016-06-27 18:28:41
836
原创 UITextField属性
//创建UITextField对象UITextField * tf=[[UITextFieldalloc]init];//设置UITextField的文字颜色tf.textColor=[UIColor redColor];//设置UITextField的文本框背景颜色tf.backgroundColor=[UIColor grayColor];/
2016-06-24 20:13:58
315
原创 NSMakeRange,substringWithRange,substringToIndex,substringFromIndex区别和联系
typedef NSRange *NSRangePointer;NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len){ NSRanger; r.location =loc; r.length =len; returnr;}1. NSMakeRange是一个结构体类型,包含两
2016-06-23 11:53:06
546
原创 error: linker command failed with exit code 1 (use -v to see invocation)报错总结
iOS开发这个错误一定少不了,现总结如下,一般这四方面的问题,如果不是哪你真可麻烦了1.引用出错,把***.h弄成了.m,检查一下你的所有引用;2.引用第三方的库,你添加文件是系统没有所第三方库的.m文件参入的编译中去,你向项目添加文件得注意了;3.出现这种情况很可能是,项目中引入了多个相同的文件/重复类。4.有些frameworks没有添加进来也会出现上面的问题;
2016-06-23 11:50:20
3954
原创 认识UITextField
UITextField 是一个用来处理文本输入和现实的控件,在我们的开发当中也是经常被用到。下面我们一起来学习UITextField吧!!!基本属性对象创建以及文本的显示 UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 300, 200, 50)]; [self.v
2016-06-19 20:43:00
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人