- 博客(37)
- 收藏
- 关注

转载 解决Xcode7.1上传成功但iTunesconnect一直不能构建版本的问题
将应用打包成ipa文件上传至苹果服务器时,我们一般用xcode上传即可,但有时候,明明用xcode上传成功却在developer账户中一直无法正常显示出来,所以我就要来讲讲第二种不常用的方法,但是很有用,上传成功后,通过审核也很快,可以大大节省时间,话不啰嗦,上方法:1.首先将文件打包成ipa文件 我们不直接上传至苹果服务器,而是先导出:2.在到
2015-12-17 17:23:20
10301
原创 使用keychain保存用户密码,token等
iOS系统存储的数据都是在sandBox里面, 一旦删除App,沙盒也就不存在了,要想在手机中一直保存用户的个人信息 ,即使删除App之后,再次安装还有此信息,那么就可以用keychain(钥匙串)来保存信息。 通常情况下,iOS系统用NSUserDefaults存储数据信息, 但是对于一些私密信息, 比如密码,证书等等,就需要使用更为安全的keychain了,keych
2017-05-04 11:27:56
1677
原创 解析可选option
解析可选-option使用可选(optionals)来处理值可能缺失的情况。可选表示:-有值,等于 x或者-没有值注意:C 和 Objective-C 中并没有可选这个概念。最接近的是 Objective-C 中的一个特 性,一个方法要不返回一个对象要不返回 nil,nil 表示“缺少一个合法的对象”。然而,这只 对对象起作用——对于
2017-05-03 16:55:25
785
转载 iOS及Mac开源项目和学习资料【超级全面】
UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)X
2016-01-14 15:57:17
1851
原创 iOS崩溃调试
在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题。简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。现在网上有很多关于解析崩溃信息的博客,但是大多质量参差不齐,或者有些细节没有注意到。今天写一篇博客总结一下我对崩溃调试的使用和技巧,如果有哪些错误或遗漏,还请指点,谢谢!获取崩溃信息在iOS中获
2016-01-07 17:00:50
593
转载 iOS同步对象性能对比
http://ksnowlv.github.io/blog/2014/09/07/ios-tong-bu-suo-xing-neng-dui-bi/
2016-01-05 16:36:15
510
转载 GCD使用详解
1.http://codingobjc.com/blog/2013/05/07/gcdshi-yong-xiang-jie-shang-pian/2.http://codingobjc.com/blog/2013/05/07/gcdshi-yong-xiang-jie-xia-pian/
2016-01-05 15:43:47
414
原创 iOS中的动画 Core Animation,CATransition
Core Animation Core Animation是一组非常强大的动画处理API,使用它能做出非常绚丽的动画效果,而且往往是事半功倍,使用它需要添加QuartzCore .framework和引入对应的框架 .开发步骤: 1> 初始化一个动画对象(CAAnimation)并设置一些动画相关属性. 2> 添加动画对象到层(CALayer)中,
2016-01-04 20:36:40
668
原创 Message Forwarding + 动态绑定
> “unrecognized selector sent to instance …" 错误动态绑定:objc_msgSend的实现,查找implementation表,最终是C函数形式的调用。当某个类(以及继承树上的父类)编译时没有动态实现被调用的method的时候,一般情况下会被NSObject处理这个method(selector)并抛出异常。
2016-01-04 20:10:42
570
原创 Runtime编程 - Swizzle Stuff
objective-c的instance method调用实际上是查表再通过C形式调用的过程,这个函数表是可以操作的,这样就给了我们可以在运行时修改的机会,这种做法叫swizzle .里面提供了API,我们以调换NSString的lowercaseString与我们的category里面的stoneLowercaseString为目标。实现swizzle基本上会用到catego
2016-01-04 20:09:14
725
原创 多屏幕适配
iPhone6出现后,如何将一份设计稿支持多个尺寸? 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。
2016-01-04 19:55:44
640
原创 3D Touch 静态标签 动态标签
3D Touch 主要应用:(1)Quick ActionsQuick Actions let users do the things they do most often, faster and in fewer steps. Many of these actions can even be done with a single press, right fro
2016-01-04 19:47:46
735
原创 git常用命令
首先理解几个概念: 1.工作区:在当前仓库中,新增,更改,删除文件这些动作,都发生在工作区里面。 2.暂存区(stage/index):在版本库.git目录下,有一个index文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.
2015-12-31 16:44:28
466
原创 自定义剪切板,UIMenuController的使用
有的时候我们想要实现复制或剪切或粘贴功能。具体方式有两种,一种就是自己画个框实现界面效果,然后调用系统API把内容放到剪切板上;另一种就是界面也用系统的。本文说的是第二种方式,以为系统的做的已经非常好了。1.在点击事件中,获得第一响应者,初始化菜单界面 [selfbecomeFirstResponder]; [UIMenuControllersh
2015-12-21 20:27:22
1349
原创 自定义导航栏,系统导航栏一堆bug
开发的过程中,我们可能会遇到有的界面需要把导航栏隐藏的问题。而一旦在该界面隐藏了导航栏,在与其他界面交互的过程中就会出现一些很恶心的问题,特别是有的从桌面啊,通知啊,widget进入某些界面的话,问题就更多。因为导航栏属于系统层级,某一界面的修改都将影响所有界面的导航栏显示。而解决这种问题的方式就是将系统的导航栏隐藏,自定义一个导航栏。纵观世面上的APP,很多已经采用了诸如此类的方式,比如淘宝,美
2015-12-17 14:47:51
790
原创 导航栏右滑返回失效问题
1.很多时候我们都会自定义系统的返回按钮,这样就可能导致右滑返回失效的问题,解决方式就是:让当前控制器成为导航栏右滑返回手势UIScreenEdgePanGestureRecognizer的代理self.navigationController.interactivePopGestureRecognizer.delegate =self;2.有的时候我们在系统右滑返回的时候
2015-12-17 14:23:10
1838
原创 收起键盘的几种方式
1.放弃第一响应者[textField resignFirstResponder];2.稍暴力一点的[self.viewendEditing:YES];再暴力一点的[[[UIApplicationsharedApplication] keyWindow]endEditing:YES];3.点击空白区域收起键盘U
2015-12-17 13:45:45
1501
原创 用一个颜色值生成一张图片
有的时候我们需要用一个颜色值生成一张按钮的背景色,下面的方法就很有用了+ (UIImage *)createImageWithColor:(UIColor *)color{ CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIGraphicsBeginImageContext(r
2015-11-03 14:19:44
954
原创 字符串加密,解密
很多时候我们在程序中需要给一些字符串加密,写一个这样的工具类就很有必要了。下面是.h文件#import /******字符串转base64(包括DES加密)******/#define __ENCODE_DES( text ) [LEODESEncrypt base64StringFromText:text]/***
2015-11-03 14:17:04
977
原创 如何计算代码新增行数
命令行方法一:git clone -b release_1.0 http://gitlab.leoers.com/leo/biubiu_ios.git (远程克隆一个release_1.0分支到本地)git fetch origin release_1.1(从远程拉1.1到repo)git checkout -b release_1.1 origin/release_1.1
2015-10-22 16:36:44
1797
原创 使用symbolicatecrash解析crash log
随着用户量越来越大,如何查看崩溃日志变得越来越重要。1.打开Xcode->window->devices->view device logs,将崩溃日志丢进去。这种方法适合于出现崩溃的包和Xcode现在运行的代码变化不大,Xcode可以自动帮我们解析出现crash的位置。2.使用symbolicatecrash来解析crash log1.首先找到symbolicatecr
2015-10-22 16:15:17
637
原创 设备信息,系统版本,内存容量,磁盘容量
有的时候我们要获取设备的一些信息,希望该blog对你有帮助;记得导入头文件,有的可能用不上,我就不一一核对了。#import "sys/utsname.h"#include #include #include #include #include #include #include #include #inclu
2015-10-22 13:56:23
705
原创 视频合成,画面前后合成
将两段视频合成到一起,画面前后合成,demoUrl为前边的,myUrl为后边的- (void)syntheticTheVideoWithDemoUrl:(NSURL *)demoUrl myUrl:(NSURL *)myUrl{ [self loadFrontAssetWithDemoUrl:demoUrl]; [self loadBackAssetWi
2015-10-19 14:45:38
1127
原创 视频合成,左右画面合成
将两段视频合成到一起,左右画面合成,demoUrl为左边的,myUrl为右边的- (void)syntheticTheVideoWithDemoUrl:(NSURL *)demoUrl myUrl:(NSURL *)myUrl{ [selfloadFrontAssetWithDemoUrl:demoUrl]; [selfloadBackAsset
2015-10-19 14:33:41
3660
原创 视频缩略图
视频缩略图- (UIImage *)generateThumbnailsForVideoWithSecond:(CMTime)second{ AVURLAsset *asset = [[AVURLAssetalloc] initWithURL:self.editVideoUrloptions:nil]; AVAssetImageGenerator
2015-10-19 14:20:02
802
原创 视频拍摄
在这里推荐一个特别不错的三方库,封装的很好,github地址:https://github.com/piemonte/PBJVision
2015-10-19 14:07:38
487
原创 视频预览,视频播放器
- (void)setPlayerUrl:(NSURL *)playerUrl{ _playerUrl = playerUrl; AVAsset *asset = [AVAssetassetWithURL:self.playerUrl]; NSArray *requestedKeys = [NSArrayarrayWithObjects:k
2015-10-19 11:06:59
1274
原创 视频裁剪,长度裁剪
首先拿到要裁剪视频的urlAVAsset* asset = [AVAssetassetWithURL:self.outputUrl];AVMutableComposition *composition = [AVMutableCompositioncomposition];[composition addMutableTrackWithMediaType:AVMed
2015-10-16 17:55:08
1507
原创 Xcode7 iOS9 大坑知多少
1.Bitcodebitcode的理解应该是把程序编译成的一种过渡代码,然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,有类似于App瘦身的思想。用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。XXXX’ does not contain bitcode. You must rebuild it with
2015-10-16 17:36:10
815
原创 git 常用命令
1.添加所有文件 git add .提交更改 git commit -am ""拉取服务器代码 git pull本地代码提交到服务器 git push切换分支 git checkout branc
2015-10-16 13:38:16
558
原创 iOS远程推送
推送分三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。 第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。具体流程:
2015-10-13 16:40:10
635
原创 团队开发共用一个开发者账号
由于自己只开通了一个苹果开发者账号,又想在自己的macbook和公司的mac mini上都能在真机上调试。所以上网查了资料,查到的都是旧的方法,需要从钥匙串管理那里把私钥导出来然后从XCode里面把provision file导出来等等。但是在6.1.2上已经没有导出provision file导出这个选项了,最终还是从apple的官网那里找到了方法,原来苹果是把这个流程给简化了。前提
2015-10-13 15:57:07
2127
原创 图像处理 图像切割
在很多时候我们需要对一张图片进行裁剪,尽管CALayer已经为我们提供了很多方便,可以轻易实现圆形,圆角矩形,甚至直角+圆角的矩形,然而在一些特殊情况下,需要对图片进行不规则形状(比如半个⭐️)裁剪的时候,就需要一些手段来进行图片处理了。当然如果用CALayer来画path的话,任何形状都是可以画的,但是必须把每一个轮廓都写一遍,而描述这些轮廓,会随着图形复杂度而相应的繁琐,更糟糕的是,如
2015-10-13 15:51:00
1285
原创 运行时编程block
CallBack-回调,在各个编程语言中都是很重要的一个功能,比如弹窗一个子控件,在子控件中获取到信息后需要返回数据给调用方,最主流的做法就是把调用方作为参数传到子控件中,然后当子控件拿到信息以后再把信息传递给之前进来的调用方。在iOS中,是通过一种叫delegate(代理)的方式来实现,通常在创建子控件的时候会看到一句:子控件.delegate = self, 意思是说,我就是这个子控件的代理,
2015-10-13 15:32:05
616
原创 iOS开发过程中的各种坑
项目开发过程中不可避免的会遇到各种坑,本系列博客的主要目的是将其解决方法各个记录下来,以后再遇到就手到擒来了。 1,防止多个按钮同时按下 [btn setExclusiveTouch:YES]; 增加这个语句,防止其他touch事件的分发,当一个按钮响应了touch事件之后,其他按钮就不可点击了。 2,Push到Vie
2015-10-13 15:22:35
738
原创 导航栏隐藏不了
有的时候我们会发现明明设置了隐藏导航栏,而导航栏却并没有隐藏,找来找去也没发现有什么问题。这或许是因为self.navigationController.navigationBar.hidden =YES;self.navigationController.navigationBarHidden =YES;
2015-08-31 13:49:29
870
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人