- 博客(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
2549
原创 UITableView与memory warning
事情是这样的,最近在优化项目,有一个类似于新闻的资讯的页面,当不断加载更多,加载到n次后 收到 memory warning 没过多久项目就crash。通过检查代码,才发现是计算cell 的 height的方法出问题了。因为cell的高度是根据该新闻来变化,纯文字一种样式、文字加图片一种样式、多张图片一种样式等。这样就需要根据数据来决定cell的高度。以下代码就是导致内存不断增加,而且 @a
2016-09-07 18:26:20
1097
原创 避免键盘挡住输入框常用的两个通知方法
两个监听键盘显示和消失的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] add
2016-08-23 15:28:36
619
原创 有没有想过用简单办法拿到某个view的父ViewController
有时候不想给一个view 写 一个弱引用的属性,专门保存当前的父类view controller。通常这个view controller 就是 用来 push 下一个 view controller 不会用来改变 父view controller。 以下方法可以帮你:/** 查找父ViewController */+(UIViewController*) findParentViewControl
2016-08-23 15:13:20
1080
原创 iOS 开发常用的动画 放大缩小 和 透明度变化
为了用户体验更好,动画是必不可少的。常用的动画 放大缩小 和 渐变消失或显示。废话不多说直接上代码:CGFloat kAnimationDuration = 0.3f;CAGradientLayer *contentLayer = (CAGradientLayer *)_contentView.layer; CABasicAnimation *scaleAnimation = [CABas
2016-08-23 14:56:23
9465
原创 计算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
577
原创 做一个绕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
3174
原创 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
2658
原创 宏定义中的选择判断句
#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
5095
原创 【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
1133
原创 动态映射objective-c的对象方法修改空指针
背景:目前iOS工程较多将json数据转换成一个对象来储存。假设这个对象有一个Attributes为NSString类型叫myName,这个Attributes一直是nil,创建这对象后忘记对它赋值。现在要通过一个函数来检测他出来,再将他赋值为@“”;另外,我不知道有多少个Attributes,只要是NSString类型而且Attributes是nil就赋值为@“”。代
2014-08-13 15:04:18
1024
原创 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
1192
原创 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
1085
原创 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
1430
原创 项目总结
4月份去实习,对此实习学习的总结1、登录界面;2、经验介绍内容:代码整理,重复使用代码提取。3、单例的代码编写及使用。4、table view expand cell;5、字典类型,确定唯一性; 一、登录界面其实元素并不多,就是两个输入框,一个确定按钮还有一个记住密码的开关(有的不需要,自动记住密码)。要做得美观就要看ui设计了。通常有了UI设计,就使用xib文件
2014-05-12 20:28:47
864
转载 NSUserDefaults的使用
NSUserDefaults的使用 2011-07-12 15:21:55| 分类: iphone_dev_note|举报|字号 用户轻量级的数据持久化,主要用于保存用户程序的配置等信息,以便下次启动程序后能恢复上次的设置。该数据实际上是以“键值对”形式保存的(类似于NSDictionary),因此我们需要通过key来读取或者保存数据(value)。具体使用如下:
2014-04-14 08:53:14
642
转载 IOS 图片上传处理 图片压缩 图片处理
提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。使用UIImagePickerController和用户交互,我们需要实现2个协议。View Code代码如下复制代码#pragma mark 从用户相册获取活动图片- (v
2014-04-14 00:41:32
801
转载 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。
2014-03-18 18:46:06
710
原创 对[UIApplication sharedApplication]理解
[UIApplication sharedApplication]返回UIApplication的一个单例,单例是全局的,唯一的。实现代码如下:static UIApplication * application = nil;+(UIApplication*) shareApplication{ if(application == nil){
2014-03-17 21:20:42
1014
原创 解决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
2433
原创 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
1131
原创 OpenGL ES学习 1
在xcode5上新建一个OpenGL的项目,一运行就是这个例子,我就重新建一个空白的项目,按照例子来重新编写代码,而且不使用storyboard。我在这个demo学习了一些知识,如下几点:1、初始化OpenGL context,用来跟踪所有的特定状态,命令,和真实呈现在屏幕上所需要的资源。2、加载着色器,片段着色器和坐标着色器,还有设置光照和深度检测。3、GLView 和GLVie
2013-11-02 21:20:12
818
原创 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
1686
原创 OpenGL超级宝典笔记9(完)
第十七章 片段着色器:增强像素处理的威力 在本章中,我们将通过带有多种片段着色器的实例来学习,包括每像素光照、颜色变换、图形处理、凹凸贴图和程序纹理。a) 颜色转换 包括灰度、调棕色、反色、热信号和基于片段的雾。b) 图像处理 是片段着色器不需要顶点着色器协助的另一个领域。模糊:也许是最为常见的一种过滤器,能够平滑一些高频率的特性。锐化:与模糊正好相
2013-10-24 21:36:55
1100
原创 OpenGL超级宝典笔记8
第十四章 深度纹理和阴影阴影贴图是一种实用的技巧,可以实现逼真的光照效果,而不需要大量的额外处理。光源的视点可以用于确定哪些物体被照射以及哪些物体被阴影所遮掩。深度纹理是一种特殊的纹理,它存储深度缓冲区的内容,把它作为阴影贴图使用。a) 一种新类型的纹理 我们需要把深度值从深度缓冲区复制到一个纹理中,作为阴影贴图使用。OpenGL允许通过glCopyTexImage2D函数直接把颜色值复制
2013-10-23 21:58:17
1095
原创 OpenGL超级宝典笔记7
第十二章 交互式图形学习使用选择和反馈,这两个都是OpenGL的强大特性,它们能够让用户与场景进行交互。选择和挑选用于在场景中的某个区域中确认一个物体,它所使用的是OpenGL坐标而不是窗口坐标。反馈返回在窗口中实际绘制图元的宝贵信息。a) 选择 实际上是一种渲染模式,但在选择模式下,像素并没有被实际复制到帧缓冲区。反之,在可视区中绘制的图元将在一个选择缓冲区中产生点记录。通常做法是为一组
2013-10-22 21:33:03
1281
3
原创 OpenGL超级宝典笔记6
第十章 曲线和表面 学习通过对控制点和结点序列进行调整,创建弯曲和皱折的表面,并学习通过几个较小的表面和更容易处理的NURBS或Bezier表面来组成复杂的表面。还有,学习只用几个指定边界的点来绘制复杂的表面、形状和模式,还学习使用GLU函数库的分格器对象把凹形区域以及中间有洞的区域分解为更为简单的凸形图元。a) 内部支持的表面 OpenGL所附带的工具函数库(GLU
2013-10-19 21:24:01
1138
原创 OpenGL超级宝典笔记5
第八章 基本纹理贴图学习如何加载纹理对象以及如何使用纹理坐标把图像贴图到几何图形的顶点。还学习对纹理图像进行过滤以及与几何图形颜色值进行混合的不同方法,并学习如何使用mip贴图来提高性能和改善视觉精度。讨论如何管理多个纹理以及如何在它们之间进行快速和方便的切换,并告诉OpenGL在可以使用高性能的纹理内存时哪个纹理具有更高的优先级。a) 加载纹理 通过glTextImage根函数加载一维、
2013-10-17 20:32:39
1141
原创 OpenGL超级宝典笔记4
第六章 颜色和材料的更多细节学习如何使用混合来创建透明和反射表面,使用OpenGL的混合和多重采样特性实现点、直线和多边形的抗锯齿处理。还学习OpenGL如何支持其他的颜色操作,如何使用alpha测试丢弃部分片段。a) 组合颜色 当混合功能被启用时,源颜色和目标颜色的组合方式是由混合方程式控制的。在默认情况下,混合方程式如下:Cf = (Cs x S)+(Cd x D),其中Cf是最终计算
2013-10-16 21:45:02
1237
原创 OpenGL超级宝典笔记(三)
第五章 颜色、材料和光照学习如何在3D场景中添加颜色以及平滑着色,如何指定一个或多个光源,并根据环境、散射和镜面成分定义它们的光照特征。a) 在OpenGL中使用颜色,通过分别指定红、绿、蓝成分的强度来指定一种特定的颜色。设置绘图颜色void glColor(red , green , blue , alpha);表示参数的数量,表示参数的数据类型。b) 接着,讲讲着色,可以简单地定义
2013-10-15 22:42:29
913
原创 OpenGL超级宝典笔记(二)
第三章学习绘制各种图形,从简单的点和直线到复杂的多边形,还有用二维的图元组成三维物体的表面。1、创建画布:调用glOrtho函数建立可视化区域,即笛卡尔坐标空间。我们可以把这个可视化区域看成是三维画布,可以用OpenGL命令和函数在它上面进行绘图。2、3D空间中的点即顶点:为了在3D画布中绘制一个点,可以使用OpenGL函数glVertex。3、绘制图形:绘制图元的其中一种方式就是
2013-10-14 21:36:09
1044
原创 《OpenGL超级宝典》笔记(一)
第一章 OpenGL的介绍用二维的方式观察3D的世界,仍然是3D世界,因为其能够触发大脑判断它的深度。这个效果与它的颜色的改变、纹理、光照、着色以及各种不同的颜色强度(由于光照的原因)。接下来就学习基本概念。透视:是指直线之间的角度,正是它产生了三维的幻觉。颜色和着色:通过增加颜色来创建实心物体,更加具有真实感。在立方体的每一面涂上不同的颜色可以帮助我们识别这个物体的各个不同的面。
2013-10-13 21:31:57
1155
原创 增强现实技术原理
这周看了不少关于增强现(简称AR)实的书籍,又下载了不少应用了AR的应用程序,大多数为广告类,只要对着某张海报,就能够显示出一个视频,简短介绍;还有一种属于合照类,一个模型显示在屏幕中,该模型可以随意摆放位置,改变模型大小; 另一类就是应用到游戏上,一定需要一张特殊的图片,该图片作为投影游戏位置,既然是用到AR技术,当然要用到3d模型,这才叫增强现实。对于手机设备用上AR技术必然
2013-09-26 21:55:45
2344
1
转载 GCD介绍(四): 完结
Dispatch Queue挂起dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个函数也可以用于dispatch source。一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正
2013-09-22 21:39:37
770
转载 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
800
转载 GCD介绍(二): 多核心的性能
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)
2013-09-22 21:37:25
746
转载 GCD介绍(一): 基本概念和Dispatch Queue
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GC
2013-09-22 21:34:47
776
原创 [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
896
原创 Cocos2d游戏学习之主角不动
这周过得挺充实的,白天上课,晚上开发游戏,玩过不少的赛车游戏,感觉挺爽,非常喜欢超速的刺激感。通过仔细的发现,赛车类的游戏中玩家操控的精灵都是在屏幕中央,而且无论怎样变动,都在屏幕中的某个位置不动,动的是背景,背景反方向移动,在肉眼看是主角是在动。如何做到除了主角不动其他都在反方向动呢?这就需要用到CCSpriteBatchNode这个类,用过这个类的人都知道是什么,不妨让我再解析一次,这类与
2013-09-07 20:11:32
897
原创 2013年9月4日会议自我总结
今天,和几个在某公司工作人交流,发现自己还有是有待提升自己的能力。我总结了自己有以下几点缺点:1、表达能力严重不足,注意体现在语言表达能力,实际上是因为对事物了解不够透彻,却少问自己是什么?为什么?怎样做?别人可以通过一个生动的比喻讲解出他对游戏引擎的了解,而我却讲得模棱两可。以后必须多反问自己,这三个问题,多从平时锻炼。2、现在我还是游戏学习的初学者,对游戏了解只是皮毛,只是学会怎样用,
2013-09-04 18:12:06
582
OSX图片XOR加密解密
2017-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人