摘要: 一、内存管理规则1、对于通过调用带有alloc、copy、mutableCopy、new或者create一词的方法创建的任何对象及其内存,你都拥有所有权。你负责在之后的某个时刻向该对象发送release消息来释放资源。使用类似[[Foo alloc]init...]命令创建的对象需要释放。任何使用类似[foo copy]方法创建的对象需要释放。任何和CreateFoo()类似的调用所返回的对象也需要释放。2、对于通过不带上述词的方法调用获得的对象,你都没有所有权。这些对象可以再当前执行栈中任意调用,离开当前栈之后,这些对象就不可用了。说明:从技术上说,对象如果之前没有被保留, 那么在下一个运行 阅读全文
posted @ 2012-11-02 21:01 gagag 阅读(1542) 评论(0) 推荐(0) 编辑
摘要: void CGPathRelease ( CGPathRef path );void CGImageRelease ( CGImageRef image);带CG的release方法基本都这个形式。其他如CGContextRelease(context);CGColorSpaceReleae(colorSpaceRef);CGDataProviderRelease(provider); 阅读全文
posted @ 2012-10-31 17:32 gagag 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 1、@synthesize 表明由系统创建属性的存取方法。 @dynamic 表明由手动创建属性的存取方法。2、系统创建存取函数大致代码清单1)atomic -(NSString *)firstName{ [threadLock lock]; NSString *result = [[firstName retain] autorelease]; [threadLock unlock];}2)nonatomic -(NSString *)firstName{ NSString *result = [[firstName retain] autorelease];} 在确定只有... 阅读全文
posted @ 2012-10-31 09:34 gagag 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1、xcode 可使用analyze静态分析代码。2、原始数据类型储存在栈中,创建的对象的空间在堆中分配。3、使用static void someFunction(){ //不论循环调用多少次,x只会创建并初始化一次 static Expensive *x = [[Expensive allloc] initWithData:...]; //操作x [x doSomeOperation];} int main(int argc,char *argv[]){ someFunction();//x在someFunction中创建 someFunction();//x已经存在,不会再... 阅读全文
posted @ 2012-10-27 14:40 gagag 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 割图片的代码,在拼图游戏等领域用的到UIImage *image = [UIImage imageNamed:@”aa.png”];CGImageRef imageRef =image.CGImage;CGImageRef image = CGImageCreateWithImageInRect (imageRef,rect);UIImage*newImage = [[UIImage alloc] initWithCGImage:image]; 阅读全文
posted @ 2012-10-17 17:29 gagag 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 最开始的想法是让旋转的弧度从0到2 * M_PI, 让动画不停的repeat,实验了一下,没有任何效果,系统动画的时候看到0与2 *M_PI是同一起一始点,所以没有效果。后来想到一种办法,就是一个变量不断的累加变大,这样影响弧度也随着变化,就达到了圆周运动的效果。直接上代码:[cpp] view plaincopyprint?-(void)startAnimation{[UIViewbeginAnimations:nilcontext:nil];[UIViewsetAnimationDuration:0.01];[UIViewsetAnimationDelegate:self];[UIView 阅读全文
posted @ 2012-10-08 17:58 gagag 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 以下转的贝塞尔曲线,可以通过三个点,来确定一条平滑的曲线。在计算机图形学应该有讲。是图形开发中的重要工具。实现的是一个图形做圆周运动。不过不是简单的关键帧动画那样,是计算出了很多点,当然还是用的关键帧动画,即使用CAKeyframeAnimation。有了贝塞尔曲线的支持,可以赋值给CAKeyframeAnimation 贝塞尔曲线的Path引用。用贝塞尔曲线画圆,是一种特殊情况,我的做法是通过贝塞尔曲线得到4个半圆的曲线,它们合成的路径就是整个圆。以下是动画部分的代码:- (void) doAnimation { CAKeyframeAnimation *animation=[CAKeyf. 阅读全文
posted @ 2012-09-26 16:16 gagag 阅读(60125) 评论(15) 推荐(20) 编辑
摘要: 在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换。Objective-C做为ANSI C的扩展,使用C标准库头文件<math.h>中定义的数学常量宏及数学函数来实现基本的数学计算操作,所以不必费神再在Cocoa Foundation中寻找相应的函数和类了。这里列出一些常用宏和数学函数,更详细的信息还是需要去查阅<math.h>头文件。数学常量:#define M_E 2.71828182845904523536028747135266250 // e#define M_LOG2E 1.44269504088896340735 阅读全文
posted @ 2012-08-24 14:35 gagag 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1.svn: Working copy xxx locked如果提示的是svn:Workingcopy'D:/javaWork/sclBBS/WebRoot/pages'locked打开终端,输入svncleanupd:/javaWork/sclBBS/WebRoot/pages,回车。2.批量删除.svn快速移除文件夹里的SVN版本控制信息在终端输入sudo find 路径 -name ".svn" -exec rm -r {} \;例如:sudo find /Users/justfly/Documents/workspace/justSVN/ -name 阅读全文
posted @ 2012-08-16 11:26 gagag 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: intvalue=arc4random()%x; 获取1到x之间的整数的代码如下: intvalue=(arc4random()%x)+1; 2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1] 使用方法: float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值范围是[0,1] 3)、random() 需要初始化时设置种子 使用方法: srandom((unsign 阅读全文
posted @ 2012-07-23 14:31 gagag 阅读(28965) 评论(0) 推荐(0) 编辑