自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

likandmydeer的专栏

苹果开发

  • 博客(216)
  • 资源 (4)
  • 收藏
  • 关注

原创 iOS开发资源文件进行XOR加密(异或加密)

iOS开发资源文件进行XOR加密(异或加密)最近接触对文件进行加密操作,如XOR加密、DES加密、AES加密等。这里我写了一个OSX资源加密工具,方便批量加密文件。文章内容如下:加密逻辑工具使用说明解密逻辑注意事项加密逻辑读取文件,先转成NSData类型数据,将密钥拼接到数据的头部,然后再使用密钥对新数据进行一次XOR加密。Created with Raphaël 2.1.0开始读取文件,

2017-09-24 16:57:01 2516

原创 UITableView与memory warning

事情是这样的,最近在优化项目,有一个类似于新闻的资讯的页面,当不断加载更多,加载到n次后 收到 memory warning 没过多久项目就crash。通过检查代码,才发现是计算cell 的 height的方法出问题了。因为cell的高度是根据该新闻来变化,纯文字一种样式、文字加图片一种样式、多张图片一种样式等。这样就需要根据数据来决定cell的高度。以下代码就是导致内存不断增加,而且 @a

2016-09-07 18:26:20 1071

原创 避免键盘挡住输入框常用的两个通知方法

两个监听键盘显示和消失的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] add

2016-08-23 15:28:36 587

原创 有没有想过用简单办法拿到某个view的父ViewController

有时候不想给一个view 写 一个弱引用的属性,专门保存当前的父类view controller。通常这个view controller 就是 用来 push 下一个 view controller 不会用来改变 父view controller。 以下方法可以帮你:/** 查找父ViewController */+(UIViewController*) findParentViewControl

2016-08-23 15:13:20 1072

原创 iOS 开发常用的动画 放大缩小 和 透明度变化

为了用户体验更好,动画是必不可少的。常用的动画 放大缩小 和 渐变消失或显示。废话不多说直接上代码:CGFloat kAnimationDuration = 0.3f;CAGradientLayer *contentLayer = (CAGradientLayer *)_contentView.layer; CABasicAnimation *scaleAnimation = [CABas

2016-08-23 14:56:23 9416

原创 计算UILabel的size

_label.text = @"自动计算长度";_label.font = [UIFont systemFontOfSize:12.0f]; CGSize size = [self sizeForString:_label.text attribute:@{NSFontAttributeName:_label.font} width:MAXFLOAT]; _label.frame

2016-01-16 23:58:39 562

原创 做一个绕Y轴旋转的动画时遇到问题

这是我做的一个Demo,红色方块与蓝色矩形的super view都是self.view,当红色方块做绕Y轴旋转动画时,只看到一半的红色方形在旋转。- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. /

2015-11-10 00:24:50 3155

原创 iOS 获取随机数

有时候我们需要在程序中生成随机数,但是在Objective-c中并没有提供相应的函数,好在C中提供了rand()、srand()、random()、arc4random()几个函数。1、 获取一个随机整数范围在:[0,100)包括0,不包括100int x = arc4random() % 100;2、 获取一个随机数范围在:[500,1000),包括500,包括1000int y = (arc

2015-11-09 22:45:02 2639

原创 宏定义中的选择判断句

#define kViewWidth (isLowIPhone6?(375.0f): iWidthScreen)#define kViewWidth isLowIPhone6?(375.0f): iWidthScreen这两个宏定义使用中的结果一样吗?float edge = kViewWidth - iWidthScreen;1、当设备是iPhone6或以上时 前者的结果是 375.0f -

2015-11-08 22:51:47 5038

原创 【MAC】Not valid jdk isntalled ---JDK版本高导致不能release

这几天在网上搜贴找如何解决Not valid jdk isntalled的问题,但是一直没结果。这是用了ANT来release,限制了jdk版本不能超过1.7。我在Mac机上安装了最新的jdk1.8,所以release的时候一直报这样的错误。如何去解决这个问题:1、下载一个1.7版本的jdk;(或者)2、用Mac机上自带的1.6版本的jdk;最好的方法就是不用下载,下面我就以不用下载来讲讲

2014-08-22 14:44:36 1126

原创 动态映射objective-c的对象方法修改空指针

背景:目前iOS工程较多将json数据转换成一个对象来储存。假设这个对象有一个Attributes为NSString类型叫myName,这个Attributes一直是nil,创建这对象后忘记对它赋值。现在要通过一个函数来检测他出来,再将他赋值为@“”;另外,我不知道有多少个Attributes,只要是NSString类型而且Attributes是nil就赋值为@“”。代

2014-08-13 15:04:18 1016

原创 cocos2d-x-2.2.5项目创建--命令行创建

Gavin:downloads DavidLik$ cd cocos2d-x-2.2.5/Gavin:cocos2d-x-2.2.5 DavidLik$ cd tools/Gavin:tools DavidLik$ cd project-creator/Gavin:project-creator DavidLik$ sudo ./create_project.py Usage: c

2014-08-07 18:27:16 1179

原创 AFNetworking 2.0 编译不过的问题修复

AFNetworking 2.0 当Deployment Target低于6.0时,AFURLConnectionOperation.h,AFURLSessionManager.h @property(nonatomic, strong) dispatch_queue_t completionQueue; 由于sdk低于6.0时,dispatch_queue_t  ARC没有托

2014-05-27 21:02:04 1075

原创 iOS—修改AFNetworking源文件可接收text/plain的方法

iOS—修改AFNetworking源文件可接收text/plain的方法 在使用AFNetworking的时候可能会碰到下面的错误: { status code: 200, headers {   "Content-Length" = 14;   "Content-Type" = "text/plain;charset=utf-8";   Date = "Thu, 2

2014-05-27 20:59:47 1407

原创 项目总结

4月份去实习,对此实习学习的总结1、登录界面;2、经验介绍内容:代码整理,重复使用代码提取。3、单例的代码编写及使用。4、table view expand cell;5、字典类型,确定唯一性;  一、登录界面其实元素并不多,就是两个输入框,一个确定按钮还有一个记住密码的开关(有的不需要,自动记住密码)。要做得美观就要看ui设计了。通常有了UI设计,就使用xib文件

2014-05-12 20:28:47 849

转载 NSUserDefaults的使用

NSUserDefaults的使用  2011-07-12 15:21:55|  分类: iphone_dev_note|举报|字号 用户轻量级的数据持久化,主要用于保存用户程序的配置等信息,以便下次启动程序后能恢复上次的设置。该数据实际上是以“键值对”形式保存的(类似于NSDictionary),因此我们需要通过key来读取或者保存数据(value)。具体使用如下:

2014-04-14 08:53:14 635

转载 IOS 图片上传处理 图片压缩 图片处理

提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。使用UIImagePickerController和用户交互,我们需要实现2个协议。View Code代码如下复制代码#pragma mark 从用户相册获取活动图片- (v

2014-04-14 00:41:32 793

转载 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。

2014-03-18 18:46:06 703

原创 对[UIApplication sharedApplication]理解

[UIApplication sharedApplication]返回UIApplication的一个单例,单例是全局的,唯一的。实现代码如下:static UIApplication * application = nil;+(UIApplication*) shareApplication{    if(application == nil){     

2014-03-17 21:20:42 1004

原创 解决Xcode 报错日志:gen_entitlements.py: No such file or directory

纠结了很久的错误gen_entitlements.py: No such file or directory已经通过苹果审核称为苹果开发者,有证书了可以真机测试,但是不断的报错,最后才发现是之前没有证书是用了一下方法:解决办法:把此Run Script删除就能行了。

2014-03-12 17:39:32 2413

原创 OpenGL ES学习2----彩立方制作遇到两个问题

第一个问题:视锥还未被定义时,为什么写好了此函数- (void) glkView:(GLKView *)view drawInRect:(CGRect)rect,运行时却什么都看不到?代码:#pragma mark - GLKView and GLKViewController delegate methods- (void) glkView:(GLKView *)view drawInRec

2013-11-13 17:48:11 1124

原创 OpenGL ES学习 1

在xcode5上新建一个OpenGL的项目,一运行就是这个例子,我就重新建一个空白的项目,按照例子来重新编写代码,而且不使用storyboard。我在这个demo学习了一些知识,如下几点:1、初始化OpenGL context,用来跟踪所有的特定状态,命令,和真实呈现在屏幕上所需要的资源。2、加载着色器,片段着色器和坐标着色器,还有设置光照和深度检测。3、GLView 和GLVie

2013-11-02 21:20:12 811

原创 type sourcecode.glsl for architecture i386问题解决方法

warning: no rule to process file '/Users/apple/Desktop/权祥/OpenGL/eeeee v0.2/eeeee/Shaders/Shader.fsh' of type sourcecode.glsl for architecture i386可以看到上图红色圈的Shader.fsh文件在Build Phases--> Compil

2013-11-02 16:48:28 1679

原创 OpenGL超级宝典笔记9(完)

第十七章 片段着色器:增强像素处理的威力      在本章中,我们将通过带有多种片段着色器的实例来学习,包括每像素光照、颜色变换、图形处理、凹凸贴图和程序纹理。a)        颜色转换 包括灰度、调棕色、反色、热信号和基于片段的雾。b)       图像处理 是片段着色器不需要顶点着色器协助的另一个领域。模糊:也许是最为常见的一种过滤器,能够平滑一些高频率的特性。锐化:与模糊正好相

2013-10-24 21:36:55 1083

原创 OpenGL超级宝典笔记8

第十四章 深度纹理和阴影阴影贴图是一种实用的技巧,可以实现逼真的光照效果,而不需要大量的额外处理。光源的视点可以用于确定哪些物体被照射以及哪些物体被阴影所遮掩。深度纹理是一种特殊的纹理,它存储深度缓冲区的内容,把它作为阴影贴图使用。a) 一种新类型的纹理 我们需要把深度值从深度缓冲区复制到一个纹理中,作为阴影贴图使用。OpenGL允许通过glCopyTexImage2D函数直接把颜色值复制

2013-10-23 21:58:17 1081

原创 OpenGL超级宝典笔记7

第十二章 交互式图形学习使用选择和反馈,这两个都是OpenGL的强大特性,它们能够让用户与场景进行交互。选择和挑选用于在场景中的某个区域中确认一个物体,它所使用的是OpenGL坐标而不是窗口坐标。反馈返回在窗口中实际绘制图元的宝贵信息。a) 选择 实际上是一种渲染模式,但在选择模式下,像素并没有被实际复制到帧缓冲区。反之,在可视区中绘制的图元将在一个选择缓冲区中产生点记录。通常做法是为一组

2013-10-22 21:33:03 1261 3

原创 OpenGL超级宝典笔记6

第十章 曲线和表面         学习通过对控制点和结点序列进行调整,创建弯曲和皱折的表面,并学习通过几个较小的表面和更容易处理的NURBS或Bezier表面来组成复杂的表面。还有,学习只用几个指定边界的点来绘制复杂的表面、形状和模式,还学习使用GLU函数库的分格器对象把凹形区域以及中间有洞的区域分解为更为简单的凸形图元。a)  内部支持的表面 OpenGL所附带的工具函数库(GLU

2013-10-19 21:24:01 1127

原创 OpenGL超级宝典笔记5

第八章 基本纹理贴图学习如何加载纹理对象以及如何使用纹理坐标把图像贴图到几何图形的顶点。还学习对纹理图像进行过滤以及与几何图形颜色值进行混合的不同方法,并学习如何使用mip贴图来提高性能和改善视觉精度。讨论如何管理多个纹理以及如何在它们之间进行快速和方便的切换,并告诉OpenGL在可以使用高性能的纹理内存时哪个纹理具有更高的优先级。a) 加载纹理 通过glTextImage根函数加载一维、

2013-10-17 20:32:39 1130

原创 OpenGL超级宝典笔记4

第六章 颜色和材料的更多细节学习如何使用混合来创建透明和反射表面,使用OpenGL的混合和多重采样特性实现点、直线和多边形的抗锯齿处理。还学习OpenGL如何支持其他的颜色操作,如何使用alpha测试丢弃部分片段。a) 组合颜色 当混合功能被启用时,源颜色和目标颜色的组合方式是由混合方程式控制的。在默认情况下,混合方程式如下:Cf = (Cs x S)+(Cd x D),其中Cf是最终计算

2013-10-16 21:45:02 1227

原创 OpenGL超级宝典笔记(三)

第五章 颜色、材料和光照学习如何在3D场景中添加颜色以及平滑着色,如何指定一个或多个光源,并根据环境、散射和镜面成分定义它们的光照特征。a) 在OpenGL中使用颜色,通过分别指定红、绿、蓝成分的强度来指定一种特定的颜色。设置绘图颜色void glColor(red , green , blue , alpha);表示参数的数量,表示参数的数据类型。b) 接着,讲讲着色,可以简单地定义

2013-10-15 22:42:29 900

原创 OpenGL超级宝典笔记(二)

第三章学习绘制各种图形,从简单的点和直线到复杂的多边形,还有用二维的图元组成三维物体的表面。1、创建画布:调用glOrtho函数建立可视化区域,即笛卡尔坐标空间。我们可以把这个可视化区域看成是三维画布,可以用OpenGL命令和函数在它上面进行绘图。2、3D空间中的点即顶点:为了在3D画布中绘制一个点,可以使用OpenGL函数glVertex。3、绘制图形:绘制图元的其中一种方式就是

2013-10-14 21:36:09 1034

原创 《OpenGL超级宝典》笔记(一)

第一章  OpenGL的介绍用二维的方式观察3D的世界,仍然是3D世界,因为其能够触发大脑判断它的深度。这个效果与它的颜色的改变、纹理、光照、着色以及各种不同的颜色强度(由于光照的原因)。接下来就学习基本概念。透视:是指直线之间的角度,正是它产生了三维的幻觉。颜色和着色:通过增加颜色来创建实心物体,更加具有真实感。在立方体的每一面涂上不同的颜色可以帮助我们识别这个物体的各个不同的面。

2013-10-13 21:31:57 1147

原创 增强现实技术原理

这周看了不少关于增强现(简称AR)实的书籍,又下载了不少应用了AR的应用程序,大多数为广告类,只要对着某张海报,就能够显示出一个视频,简短介绍;还有一种属于合照类,一个模型显示在屏幕中,该模型可以随意摆放位置,改变模型大小;        另一类就是应用到游戏上,一定需要一张特殊的图片,该图片作为投影游戏位置,既然是用到AR技术,当然要用到3d模型,这才叫增强现实。对于手机设备用上AR技术必然

2013-09-26 21:55:45 2315 1

转载 GCD介绍(四): 完结

Dispatch Queue挂起dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用  dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个函数也可以用于dispatch source。一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正

2013-09-22 21:39:37 758

转载 GCD介绍(三): Dispatch Sources

何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach p

2013-09-22 21:38:41 789

转载 GCD介绍(二): 多核心的性能

概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)

2013-09-22 21:37:25 731

转载 GCD介绍(一): 基本概念和Dispatch Queue

什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GC

2013-09-22 21:34:47 764

原创 [xcode]Error launching remote program: failed to get the task for process xxx 本人解决办法

参考贴:http://kqwd.blog.163.com/blog/static/4122344820117191351263/真机测试的时候,出现以上的错误,翻了很多贴,发现了一个贴说是,制作证书没做好,我只好重新看一遍,我的做法是两步。第一步:TARGETS -> Build Phases -> Add Build Phase -> Add Run Script如下图

2013-09-14 21:50:16 879

原创 Cocos2d游戏学习之主角不动

这周过得挺充实的,白天上课,晚上开发游戏,玩过不少的赛车游戏,感觉挺爽,非常喜欢超速的刺激感。通过仔细的发现,赛车类的游戏中玩家操控的精灵都是在屏幕中央,而且无论怎样变动,都在屏幕中的某个位置不动,动的是背景,背景反方向移动,在肉眼看是主角是在动。如何做到除了主角不动其他都在反方向动呢?这就需要用到CCSpriteBatchNode这个类,用过这个类的人都知道是什么,不妨让我再解析一次,这类与

2013-09-07 20:11:32 880

原创 2013年9月4日会议自我总结

今天,和几个在某公司工作人交流,发现自己还有是有待提升自己的能力。我总结了自己有以下几点缺点:1、表达能力严重不足,注意体现在语言表达能力,实际上是因为对事物了解不够透彻,却少问自己是什么?为什么?怎样做?别人可以通过一个生动的比喻讲解出他对游戏引擎的了解,而我却讲得模棱两可。以后必须多反问自己,这三个问题,多从平时锻炼。2、现在我还是游戏学习的初学者,对游戏了解只是皮毛,只是学会怎样用,

2013-09-04 18:12:06 577

OSX图片XOR加密解密

移动开发资源文件加密解密工具,这工具是将密钥拼接在数据的头部,再用密钥对此数据进行XOR加密(异或加密)。另外,解密就是对上述加密进行解密,输出原本数据。

2017-09-24

OSX图片XOR加密工具

移动开发将资源文件加密,这个资源是 先将密钥放到原数据头部组成的新数据,在用密钥进行一次加密,这样就不会那么容易被破解。

2017-09-24

AllyRadioButton

显示选择题的选项,单选题,点击文字都可以选择,并能够提示选择了哪一项。

2013-08-01

页面切换教程 使用了ARC技术

页面切换教程,使用了ARC技术,一个简单的例子。

2013-05-14

空空如也

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

TA关注的人

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