自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 解决Xcode7.1上传成功但iTunesconnect一直不能构建版本的问题

将应用打包成ipa文件上传至苹果服务器时,我们一般用xcode上传即可,但有时候,明明用xcode上传成功却在developer账户中一直无法正常显示出来,所以我就要来讲讲第二种不常用的方法,但是很有用,上传成功后,通过审核也很快,可以大大节省时间,话不啰嗦,上方法:1.首先将文件打包成ipa文件   我们不直接上传至苹果服务器,而是先导出:2.在到

2015-12-17 17:23:20 10226

原创 使用keychain保存用户密码,token等

iOS系统存储的数据都是在sandBox里面, 一旦删除App,沙盒也就不存在了,要想在手机中一直保存用户的个人信息 ,即使删除App之后,再次安装还有此信息,那么就可以用keychain(钥匙串)来保存信息。        通常情况下,iOS系统用NSUserDefaults存储数据信息, 但是对于一些私密信息, 比如密码,证书等等,就需要使用更为安全的keychain了,keych

2017-05-04 11:27:56 1556

原创 解析可选option

解析可选-option使用可选(optionals)来处理值可能缺失的情况。可选表示:-有值,等于 x或者-没有值注意:C 和 Objective-C 中并没有可选这个概念。最接近的是 Objective-C 中的一个特 性,一个方法要不返回一个对象要不返回 nil,nil 表示“缺少一个合法的对象”。然而,这只 对对象起作用——对于

2017-05-03 16:55:25 712

转载 iOS及Mac开源项目和学习资料【超级全面】

UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)X

2016-01-14 15:57:17 1741

原创 iOS崩溃调试

在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题。简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。现在网上有很多关于解析崩溃信息的博客,但是大多质量参差不齐,或者有些细节没有注意到。今天写一篇博客总结一下我对崩溃调试的使用和技巧,如果有哪些错误或遗漏,还请指点,谢谢!获取崩溃信息在iOS中获

2016-01-07 17:00:50 529

转载 iOS同步对象性能对比

http://ksnowlv.github.io/blog/2014/09/07/ios-tong-bu-suo-xing-neng-dui-bi/

2016-01-05 16:36:15 442

转载 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 346

原创 iOS中的动画 Core Animation,CATransition

Core Animation  Core Animation是一组非常强大的动画处理API,使用它能做出非常绚丽的动画效果,而且往往是事半功倍,使用它需要添加QuartzCore .framework和引入对应的框架 .开发步骤:    1> 初始化一个动画对象(CAAnimation)并设置一些动画相关属性.    2> 添加动画对象到层(CALayer)中,

2016-01-04 20:36:40 621

原创 iOS 数据库升级策略

2016-01-04 20:14:49 701

原创 Message Forwarding + 动态绑定

> “unrecognized selector sent to instance …" 错误动态绑定:objc_msgSend的实现,查找implementation表,最终是C函数形式的调用。当某个类(以及继承树上的父类)编译时没有动态实现被调用的method的时候,一般情况下会被NSObject处理这个method(selector)并抛出异常。

2016-01-04 20:10:42 497

原创 Runtime编程 - Swizzle Stuff

objective-c的instance method调用实际上是查表再通过C形式调用的过程,这个函数表是可以操作的,这样就给了我们可以在运行时修改的机会,这种做法叫swizzle .里面提供了API,我们以调换NSString的lowercaseString与我们的category里面的stoneLowercaseString为目标。实现swizzle基本上会用到catego

2016-01-04 20:09:14 671

原创 多屏幕适配

iPhone6出现后,如何将一份设计稿支持多个尺寸? 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。

2016-01-04 19:55:44 563

原创 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 677

原创 git常用命令

首先理解几个概念:    1.工作区:在当前仓库中,新增,更改,删除文件这些动作,都发生在工作区里面。    2.暂存区(stage/index):在版本库.git目录下,有一个index文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.

2015-12-31 16:44:28 376

原创 自定义剪切板,UIMenuController的使用

有的时候我们想要实现复制或剪切或粘贴功能。具体方式有两种,一种就是自己画个框实现界面效果,然后调用系统API把内容放到剪切板上;另一种就是界面也用系统的。本文说的是第二种方式,以为系统的做的已经非常好了。1.在点击事件中,获得第一响应者,初始化菜单界面    [selfbecomeFirstResponder];    [UIMenuControllersh

2015-12-21 20:27:22 1273

原创 自定义导航栏,系统导航栏一堆bug

开发的过程中,我们可能会遇到有的界面需要把导航栏隐藏的问题。而一旦在该界面隐藏了导航栏,在与其他界面交互的过程中就会出现一些很恶心的问题,特别是有的从桌面啊,通知啊,widget进入某些界面的话,问题就更多。因为导航栏属于系统层级,某一界面的修改都将影响所有界面的导航栏显示。而解决这种问题的方式就是将系统的导航栏隐藏,自定义一个导航栏。纵观世面上的APP,很多已经采用了诸如此类的方式,比如淘宝,美

2015-12-17 14:47:51 682

原创 导航栏右滑返回失效问题

1.很多时候我们都会自定义系统的返回按钮,这样就可能导致右滑返回失效的问题,解决方式就是:让当前控制器成为导航栏右滑返回手势UIScreenEdgePanGestureRecognizer的代理self.navigationController.interactivePopGestureRecognizer.delegate =self;2.有的时候我们在系统右滑返回的时候

2015-12-17 14:23:10 1599

原创 收起键盘的几种方式

1.放弃第一响应者[textField resignFirstResponder];2.稍暴力一点的[self.viewendEditing:YES];再暴力一点的[[[UIApplicationsharedApplication] keyWindow]endEditing:YES];3.点击空白区域收起键盘U

2015-12-17 13:45:45 1433

原创 用一个颜色值生成一张图片

有的时候我们需要用一个颜色值生成一张按钮的背景色,下面的方法就很有用了+ (UIImage *)createImageWithColor:(UIColor *)color{    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);    UIGraphicsBeginImageContext(r

2015-11-03 14:19:44 857

原创 字符串加密,解密

很多时候我们在程序中需要给一些字符串加密,写一个这样的工具类就很有必要了。下面是.h文件#import /******字符串转base64(包括DES加密)******/#define __ENCODE_DES( text )        [LEODESEncrypt base64StringFromText:text]/***

2015-11-03 14:17:04 877

原创 如何计算代码新增行数

命令行方法一: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 1682

原创 使用symbolicatecrash解析crash log

随着用户量越来越大,如何查看崩溃日志变得越来越重要。1.打开Xcode->window->devices->view device logs,将崩溃日志丢进去。这种方法适合于出现崩溃的包和Xcode现在运行的代码变化不大,Xcode可以自动帮我们解析出现crash的位置。2.使用symbolicatecrash来解析crash log1.首先找到​symbolicatecr

2015-10-22 16:15:17 581

原创 设备信息,系统版本,内存容量,磁盘容量

有的时候我们要获取设备的一些信息,希望该blog对你有帮助;记得导入头文件,有的可能用不上,我就不一一核对了。#import "sys/utsname.h"#include #include #include #include #include #include #include #include #inclu

2015-10-22 13:56:23 648

原创 视频合成,画面前后合成

将两段视频合成到一起,画面前后合成,demoUrl为前边的,myUrl为后边的- (void)syntheticTheVideoWithDemoUrl:(NSURL *)demoUrl myUrl:(NSURL *)myUrl{    [self loadFrontAssetWithDemoUrl:demoUrl];    [self loadBackAssetWi

2015-10-19 14:45:38 1049

原创 视频合成,左右画面合成

将两段视频合成到一起,左右画面合成,demoUrl为左边的,myUrl为右边的- (void)syntheticTheVideoWithDemoUrl:(NSURL *)demoUrl myUrl:(NSURL *)myUrl{    [selfloadFrontAssetWithDemoUrl:demoUrl];    [selfloadBackAsset

2015-10-19 14:33:41 3553

原创 视频缩略图

视频缩略图- (UIImage *)generateThumbnailsForVideoWithSecond:(CMTime)second{    AVURLAsset *asset = [[AVURLAssetalloc] initWithURL:self.editVideoUrloptions:nil];    AVAssetImageGenerator

2015-10-19 14:20:02 735

原创 视频拍摄

在这里推荐一个特别不错的三方库,封装的很好,github地址:https://github.com/piemonte/PBJVision

2015-10-19 14:07:38 433

原创 视频预览,视频播放器

- (void)setPlayerUrl:(NSURL *)playerUrl{    _playerUrl = playerUrl;    AVAsset *asset = [AVAssetassetWithURL:self.playerUrl];    NSArray *requestedKeys = [NSArrayarrayWithObjects:k

2015-10-19 11:06:59 1191

原创 视频裁剪,长度裁剪

首先拿到要裁剪视频的urlAVAsset* asset = [AVAssetassetWithURL:self.outputUrl];AVMutableComposition *composition = [AVMutableCompositioncomposition];[composition addMutableTrackWithMediaType:AVMed

2015-10-16 17:55:08 1380

原创 Xcode7 iOS9 大坑知多少

1.Bitcodebitcode的理解应该是把程序编译成的一种过渡代码,然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,有类似于App瘦身的思想。用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。XXXX’ does not contain bitcode. You must rebuild it with 

2015-10-16 17:36:10 746

原创 git 常用命令

1.添加所有文件                  git add .提交更改                            git commit -am ""拉取服务器代码                 git pull本地代码提交到服务器      git push切换分支                            git checkout branc

2015-10-16 13:38:16 519

原创 iOS远程推送

推送分三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。 第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。具体流程:

2015-10-13 16:40:10 574

原创 团队开发共用一个开发者账号

由于自己只开通了一个苹果开发者账号,又想在自己的macbook和公司的mac mini上都能在真机上调试。所以上网查了资料,查到的都是旧的方法,需要从钥匙串管理那里把私钥导出来然后从XCode里面把provision file导出来等等。但是在6.1.2上已经没有导出provision file导出这个选项了,最终还是从apple的官网那里找到了方法,原来苹果是把这个流程给简化了。前提

2015-10-13 15:57:07 2027

原创 图像处理 图像切割

在很多时候我们需要对一张图片进行裁剪,尽管CALayer已经为我们提供了很多方便,可以轻易实现圆形,圆角矩形,甚至直角+圆角的矩形,然而在一些特殊情况下,需要对图片进行不规则形状(比如半个⭐️)裁剪的时候,就需要一些手段来进行图片处理了。当然如果用CALayer来画path的话,任何形状都是可以画的,但是必须把每一个轮廓都写一遍,而描述这些轮廓,会随着图形复杂度而相应的繁琐,更糟糕的是,如

2015-10-13 15:51:00 1172

原创 运行时编程block

CallBack-回调,在各个编程语言中都是很重要的一个功能,比如弹窗一个子控件,在子控件中获取到信息后需要返回数据给调用方,最主流的做法就是把调用方作为参数传到子控件中,然后当子控件拿到信息以后再把信息传递给之前进来的调用方。在iOS中,是通过一种叫delegate(代理)的方式来实现,通常在创建子控件的时候会看到一句:子控件.delegate = self, 意思是说,我就是这个子控件的代理,

2015-10-13 15:32:05 567

原创 iOS开发过程中的各种坑

项目开发过程中不可避免的会遇到各种坑,本系列博客的主要目的是将其解决方法各个记录下来,以后再遇到就手到擒来了。 1,防止多个按钮同时按下 [btn setExclusiveTouch:YES];   增加这个语句,防止其他touch事件的分发,当一个按钮响应了touch事件之后,其他按钮就不可点击了。 2,Push到Vie

2015-10-13 15:22:35 675

原创 导航栏隐藏不了

有的时候我们会发现明明设置了隐藏导航栏,而导航栏却并没有隐藏,找来找去也没发现有什么问题。这或许是因为self.navigationController.navigationBar.hidden =YES;self.navigationController.navigationBarHidden =YES;

2015-08-31 13:49:29 814

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除