- 博客(184)
- 资源 (11)
- 收藏
- 关注
原创 关于IOS App中集成广告或者跟踪活动带来的App安装
1.serve advertisements within the app服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。2.Attribute this app installation to a previously served advertisement.跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件
2016-08-10 11:42:02
1539
原创 使用命令行工具atos分析crash 报告
1,将.app .dSYM .crash 文件放在同一目录下2, 执行,获取uuid xcrun dwarfdump --uuid XinkaishiAppStore.app/XinkaishiAppStore 这个app有2个UUID,表明它是一个fat binnary,它能利用最新硬件的特性,又能兼容老版本的设备。3,用at
2016-07-25 17:23:03
3066
原创 时间格式简写
时间格式简写: AD公元 yy: 年的后2位 yyyy: 完整年 MM: 月,显示为1-12 MMM: 月,显示为英文月份简写,如 Jan MMMM: 月,显示为英文月份全称,如 Janualy dd: 日,2位数表示,如02 d: 日,1-2位显示,如 2 EEE: 简写星期几,如Sun
2016-06-21 17:45:11
7764
原创 iOS-获取视频长度和当前播放时间
直接使用MPMoviePlayerController中的属性不能获取视频长度和当前播放进度,需要添加AVFoundation框架,并引入头文件#import AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:url options:opts]; // 初始化视频媒体文件 int minute = 0, second = 0; s
2016-04-23 15:23:14
8410
原创 获取ALAset的图片宽度和高度
ALAssetRepresentation* representation = [enty.assetdefaultRepresentation]; //获取资源图片的长宽 CGSize dimension = [representationdimensions]; float width = dimension.width; float
2016-03-07 12:40:19
592
原创 cer->pem
openssl pkcs12 -clcerts -nokeys -out cert.pem -in aps_development.p12 openssl pkcs12 -nocerts -out key.pem -in aps_development.p12 openssl rsa -in key.pem -out key.unencrypted.pem cat cert
2016-02-03 11:48:02
553
原创 算法【8】:快速排序
http://blog.youkuaiyun.com/hguisu/article/details/7776068快速排序是通常被认为在同数量级(O(nlog2n))的排序方法中平均性能最好的。但若初始序列按关键码有序或基本有序时,快排序反而蜕化为冒泡排序。为改进之,通常以“三者取中法”来选取基准记录,即将排序区间的两个端点与中点三个记录关键码居中的调整为支点记录。快速排序是一个不稳定的排序方法。
2015-12-16 13:48:56
691
原创 算法【7】:冒泡排序
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。void bubbleSort(int a[], int n){ for(int i =0 ; i< n-1; ++i) { for(int j = 0; j < n
2015-12-16 11:51:44
592
原创 算法【5】:简单选择排序
基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 NSMutableArray * arr = [NSMutableArray arrayWithObjects: @(27), @(73), @
2015-12-15 15:25:02
637
原创 算法【4】:希尔排序(缩小增量排序)
插入排序的算法复杂度为O(n2),但如果序列为正序可提高到O(n),而且直接插入排序算法比较简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描述希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入
2015-12-15 14:09:22
1738
原创 算法【3】:直接插入排序(又叫增量法)
1,基本思想假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。也可以这么理解:比如斗地主,我们喜欢把最大牌的放到左边,最小的放到左边,那么我们在每拿起一张牌,去插入的时候,就需要找到合适的位置。这个过程的排序,就是直接插入排序。
2015-12-15 11:32:20
990
原创 算法【2】:排序算法的简介
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。八大排序算法: 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最
2015-12-15 11:15:46
488
原创 算法【1】:时间复杂度和空间复杂度
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称
2015-12-15 11:11:23
606
原创 KVO实现原理
假设需要被观察类的名字Person1、当一个对象有观察者时,动态创建这个对象的类 的子类(子类名字:NSKVONotifying_Person)2、对于每个被观察的对象的属性,重写其set方法3、在重写的set方法中调用- willChangeValueForKey:和- didChangeValueForKey:通知观察者4、当一个property没有观察者时,删
2015-11-09 15:46:49
612
转载 IOS友盟统计Bug追踪
http://blog.youkuaiyun.com/jwzhangjie/article/details/46042415
2015-07-12 16:24:32
878
转载 Objective-C 中的 Meta-class 是什么
关注的是 Objective-C 中的一个陌生的概念—— meta-class。在 Objective-C 中的每个类都有一个相关联的 meta-class,但是你很少会直接使用 meta-class,他们仍旧保持着神秘的面纱。我们从在运行时创建一个类开始。通过查看 “class pair”,我会解释 meta-class 是什么,同时也会谈谈在 Objective-C 中的对象或者类相关的一些一般
2015-07-06 22:48:12
717
转载 iOS7中的多任务
iOS7以前的Multitasking iOS的多任务是在iOS4的时候被引入的,在此之前iOS的app都是按下Home键就被干掉了。iOS4虽然引入了后台和多任务,但是实际上是伪多任务,一般的app后台并不能执行自己的代码,只有少数几类服务在通过注册后可以真正在后台运行,并且在提交到AppStore的时候也会被严格审核是否有越权行为,这种限制主要是出于对于设备的续航和安全两方面进行的考虑。之后经
2015-07-06 22:35:02
759
转载 Your build settings specify a provisioning profile with the UUID
在Archive项目时,出现了“Your build settings specify a provisioning profile with the UUID “”, however, no such provisioning profile was found”的出错。一直提示指定UUID的provisioning profile找不到,感觉很奇怪。明明自己的provisioning prof
2015-06-16 13:42:29
610
原创 Swift ?和!的理解
Swift ?和!的理解Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。“?” 先说“?”个吧 let str = strValue?.length? 代表不确定的意思,比如这个例子,意思是strValue可能为nil,并且当strValue为nil的时候,后面这个length就不在调用了
2015-06-15 23:11:08
1023
原创 Analyzing dependencies 解决方案
现在好多开源的项目都使用了cocoapod这也给好多喜欢看开源代码的人带来了很大的不便利,可能有时候会遇见Analyzing dependencies 出现,下面说两种解决方案第一种,就是依旧使用cocoapod第一步:你需要cd 到podfile所在文件夹第二步:逐个执行下面这三个命令: 1,pod repo remove master2,pod setup3,po
2015-06-14 09:22:21
4048
1
原创 ios开发,javascript直接调用oc代码而非通过改变url回调方式
之前一个ios项目中,需要通过UIWebview来打开一个静态页面,并在静态页面中调用相关object-c代码。 一、以前使用js调用object-c的方法关于如何使用javascript调用object-c中的函数和方法,我搜索了好久网上所有的方法,基本都指明了一个方向,那就是在UIWebview中载入的js代码中通过改变document.loca
2015-05-22 10:03:21
633
原创 ios 加急审核
提交完成后进入加急审核页面。链接:https://developer.apple.com/appstore/contact/appreviewteam/index.html再加上两张说明图原因:我写的理由: We found a serious problem, when open our Ap
2015-05-15 15:52:44
1114
原创 dispatch记录
1,dispatch_set_target_queue dispatch_queue_t serialQueue = dispatch_queue_create("com.example", NULL); dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND
2015-02-28 12:55:42
854
原创 NSPredicate的predicateWithFormat常用方法
1,检索数组2,字符串相关:BEGINSWITH, ENDSWITH , CONTAINS例:@"name CONTAIN[cd] 'ang'" //包含某个字符串 @"name BEGINSWITH[c] 'sh'" //以某个字符串开头 @"name ENDSWITH[d] 'ang'" //以某个字符串结束注:[c
2015-02-26 17:55:25
2416
原创 iPhone6 和 iPhone 6 plus的适配
苹果每出一款产品,都会引起广大IOS程序员们的深深关注!是不是又该做适配了?是不是又该学习新东西了?种种的担心挂在心头。下面我谈谈我对iPhone6 和 iPhone 6 plus适配问题的理解:1,首先,我们要明白,虽然iPhone6 和 iPhone 6 plus的分辨率发生了巨大的变化,屏幕变宽了,也变长了,但是咱们计算一下,用他们的宽和高对比一下,发现他们是16:9 在看
2014-10-11 15:18:37
2205
原创 NSHashTable 和 NSMapTable的学习
今天在实现play gif功能的时候,看到有两个类比较陌生,就在此记录下看到的东西:NSSet和NSDictionary是两个常用的类,但是他们默认假定了其中对象的内存行为。对于NSSet,object是强引用的,和NSDictionary中的value是一样的。而NSDictionary中的key则是copy的,因此当开发者想要使NSSet的objects或者NSDictionary的v
2014-10-10 15:20:50
4368
原创 Brew install for mac
安装命令如下:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1当brew安装成功后,就可以随意安装自己想要的软件了,例如cloc,命令如下:sudo brew install cloc卸载的话,命令如下:sudo brew uni
2014-09-29 16:50:41
1185
原创 UIBezierPath
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中。此类是Core Graphics框架关于path的一个封装。使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。 1.Bezier Path 基础 UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建
2014-09-01 17:59:11
1603
原创 穿过已知点画平滑曲线(3次贝塞尔曲线)
运用贝塞尔曲线的光滑性来穿过这些点。大致思路就是 先算出相邻原始点的中点,在把相邻中点连成的线段平移到对应的原始点,以平移后的中点作为控制点,相邻原始点为起始点画贝塞尔曲线,这样就保证了连接处的光滑。而贝塞尔曲线本身是光滑的,所以就把这些原始点用光滑曲线连起来了。我封装了一个函数,留着以后用。(c++版,其它语言只要把数组和可变数组稍微变一下就能用)
2014-09-01 17:57:46
2330
1
原创 彻底理解position与anchorPoint
引言相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIView内部
2014-08-18 22:50:09
1061
原创 ios中关于对锚点的理解
锚点在ios中见到的地方不多,大部分用在动画中。今天看到一个动画,上面都是关于锚点的,锚点这个概念在两年前看cocos2d得基本概念时接触过,当时没怎么看,今天看到了,就在好好的学一下。看了一篇blog,是关于锚点的,就借鉴一些上面的图像:cocos2d里采用OpenGL ES坐标系,坐标原点在屏幕左下角。而ios采用的是Quartz 2D坐标系,坐标原点在屏幕左上角。在coc
2014-08-18 22:36:35
3035
转载 Autolayout及VFL经验分享
这篇不是什么教程。Cocoa autolayout出来蛮久了。以前多次想去深入研究一下,每次都很蛋疼无序。这东西是在有些搞。尤其习惯了code写布局的。看到Visual format language,简直要掀桌子。搜教程,满世界都是,没有一个讲得透彻的。例子空洞。你们就只会3个控件横向布局对法?浑浑噩噩看了多篇。有了点总结。槽不多吐了。简单讲讲。Autolayout,开始于iOS6.0
2014-08-04 18:52:47
599
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人