理解NSCondition 至于如何使用lock,unlock,signal,wait,以及为什么官方文档建议用[cocoaCondition lock];timeToDoWork++;[cocoaCondition signal];[cocoaCondition unlock];我觉的可以参考下面的链接,毕竟ios也是linux内核,感觉搞不好nscondition就是对posix的pthread_
CGContextTranslateCTM和CGContextScaleCTM真是个技术活 使用CGContextTranslateCTM和CGContextScaleCTM真不容易,数学不好的哥们头的晕,比如我就是下面的代码是用来类似做网页点击放大的效果,setTouchPoint是通过touchedmove去调用更新touchpoint点,调整放大镜的center的位置,而放大的效果则在下面drawRect里,而核心就在于如何在矩阵中变化,比如平移,旋转,scale缩放
UITableView的删除,移动及修改删除按钮上的文字 其实修改UITableView进行删除操作的时候右边出现的删除按钮上的文字很简单:重写delegate方法:-(NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexpath;如果需要出现UITableView上
如何通过掩码图创建不规则的显示效果的图片(clip图片) 首先你必须要准备一个原图,和一个准备作为遮罩的掩码图(mask),这里有两点要注意,如果希望通过CGImageCreateWithMask函数去创建一个处理过的不规则的图片的话,那么你需要有一张原图是带alpha通道的图片,和一个不带alpha通道的遮罩图。如何判断是否有alpha通道其实很简单,你在mac里右键显示简介的时候,有显示该图片的信息,其中一行就是显示是否有alpha通道。当然
创建操作/删除多行数据的UITableView的细节 首先注意需要重写-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath这里需要注意的是返回的结果应该是return UITableViewCellEditingStyleDelete | UITableVie
关于VC,GCC成员变量的内存对齐和偏移量的问题 VC中是这样定义的注意添加头文件#include /* Define offsetof macro */#ifdef __cplusplus#ifdef _WIN64#define offsetof(s,m) (size_t)( (ptrdiff_t)&reinterpret_cast((((s *)0)->m)) )#else#define offsetof(s,m)
详细解析IOS中的CGContextAddArcToPoint方法的使用 CGContextAddArc方法较为好理解,都已经制定了原点坐标,半径,始末弧度,顺逆时针等数值了,弧线基本上都已经出来了而对于CGContextAddArcToPoint方法则有点不好理解。研究好一会才明白,特写下来以供后面查询首先当传入参数无法绘制弧线的时候(比如current point和start point还有end point都在一条直线上,那么根本无法绘制出圆弧),那么
注意访问器中的一个小细节,关于有访问器没有成员变量的问题 我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,而你翻看了下头文件并没有发现_window这个变量,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的属性、类的存取器、类的局部变量的统一理解。在32位系统中,如果类的 @
IOS IPhone开发的tip记录 1:多点触摸不稳定,多于两指触摸时不是很稳定连贯,慎用?2:持久化归档,[NSKeyedArchiver archiveRootObject:obj toFile:DataPath];[NSKeyedUnarchiver unarchiveObjectWithFile:DataPath];他们会分别调用obj对象中的方法:-(id)initWithCoder:(NSCoder*)c
IOS的app程序中的文件目录的功能和使用详细说明 一些重要的应用目录为了安全的缘故,一个应用只能拥有一些目录,用来写入应用的数据或者首选项参数。当一个应用安装到系统,会创建该应用的home目录。以下列出一些home目录下的主要的子目录:/AppName.app:存放应用程序自身/Documents/:存放用户文档和应用数据文件/Library/:应用程序规范的顶级目录,下面有一些规范定义的的子目录,当然也可以自定义子目
KVC,KVO的一些原理理解与使用介绍[续] 对kvo/kvc做了简单的介绍,可作为入门读物。有些术语描述不够精确请指正。欢迎讨论。Kvo是Cocoa的一个重要机制,他提供了观察某一属性变化的方法,极大的简化了代码。这种观察-被观察模型适用于这样的情况,比方说根据A(数据类)的某个属性值变化,B(view类)中的某个属性做出相应变化。对于推崇MVC的cocoa而言,kvo应用的地方非常广泛。(这样的机制听起来类似Not
KVC,KVO的一些原理理解与使用介绍 使用KVC、KVO的优势通过规定了一组通用的Cocoa命名法则、调用规则等,实现了如下功能: ² 使用一对高度规范化的访问方法,获取以及设置任何对象的任何属性的值。² 通过继承一个特定的方法,并且指定希望监视的对象及希望监视的属性名称,就能在该对象的指定属性的值发生改变时,得到一个“通知”(尽管这不是一个真正意 义上的通知),并且得到相关属性的值的变化(原先的值和改变后
Box2d系列 – 如何在cocos2d-x中激活debug draw [ZZ]http://www.ipplelife.com/?p=713本文的读者要求是, 熟悉cocos2d-x流程, 熟悉box2d的基本代码。很久没写cocos2dx的东西了,最近比赛接近,做题太郁闷就练习下使用box2d,好歹也发时间看完了官方文档的。。本来很想发时间写一些关于Box2d的基础的,但是我怕我写不好,内容太多太多了。所以,自己学到什么就写什么吧。
The Footprint Of Cocos2d-x [三] ---- cocos2d之基础知识(tips) tips1:Don’t use __super in C++ to instead super in objc. The keyworkd __super is only recognized by VC++, but can not compiled by GCC. So you had better to call the name of parent class, CCLayer::
The Footprint Of Cocos2d-x [三] ---- cocos2d之基础知识(Accelerometer, action,Menu) 加速计UIAcceleration,菜单menu,动作action加速计启动加速计事件并通过delegate去处理事件self.isAccelerometerEnabled = YES;-(void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)accelerati
关于如何调用mfc带资源对话框的dll的简单演示 关于如何调用mfc带资源对话框的dll的简单演示 很简单,建立一个mfc的dll,然后导出一个函数,并在导出函数里探出对话框,注意的是需要在导出函数里调用一句话,否则无法调用mfc资源对话框,就是这句话:AFX_MANAGE_STATE(AfxGetStaticModuleState()); 具体项目工程代码见下方代码了(我改成jpg上传了,下载后改成zip后缀即可)
个人保存 mutable mutable 可以用来指出,即使结构或者类变量为const,其某个成员也可以被修改 例如 struct data { char name[30]; mutable int accesses; .... }; const data veep = {"david";,0,} strcpy(veep.name,"Jimmy");// not allowed veep.accesses++; // allowed veep 的const限定符禁止程序
普通函数的汇编分析 函数很简单int sum(int x,int y){return x+y;}int _tmain(int argc, _TCHAR* argv[]){ int xx=sum(3,4);....//省略后面的} 直接上VS转化出来的汇编代码 //sum函数部分。。。。int sum (int x,int y){004113B
心灵的碰撞,让我清醒了很多。 今天本来想早点就睡觉的,最后关机前,一个一个关闭网页,顺便最后浏览下,结果看见csdn上一个推荐的文章,看了3 4篇后突然看到一个让我有点感触的标题,于是点了进去,结果就一发不可收拾,一直看到结束,连着评论都看了不少,因为我发现此人的经历居然和我有很大的相似,更重要的是他的性格也如此,我又点了一些其他的文章,发现我可以尝试从他的经历上结果自己的想法好好规划下自己的未来。尽管已经有点晚了,但我还是很兴奋,我知道明天下午肯定又要打瞌睡了,但我愿意,我觉得这个是值得的。有个人说的话,年轻的时候,不该放纵自己!
栈溢出相关 定义 栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。程序在运行过程中,为了临时存取数据的需要,一般都要分配一些内存空间,通常称这些空间为缓冲区。如果向缓冲区中写入超过其本身长度的数据,以致于缓冲区无法容纳,就会造成缓冲区以外的存储单元被改写,这种现象就称为缓冲区溢出。 栈溢出就是缓冲区溢出的一种。 性质 由于缓冲区