导航

2012年2月24日

摘要: 原文作者Andrew Huang <bluedrum@163.com> 转载请注明作者 @selector()基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取. 它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址)?因此我们有如下代码。一.取得selector值.C函数指针 int add(int val) { return val+1; } int (* c_func)(int val); //定义一个函数指针变量 c_func = add ; //把 阅读全文

posted @ 2012-02-24 21:06 网名还没想好 阅读(181) 评论(0) 推荐(0) 编辑

摘要: 1.NSLog会自己加上换行符2.NSLog在Debug下会写到system.log中3.NSLog会自动加上时间和进程信息.4.NSLog支持%@去打印一个对象类型,当使用%@时,它会给对象发送消息description,所以如果你组合了一个新的类,你可以通过给自己重载description来实现打印DEBUG 比如[cpp] view plaincopy-(NSString*)description; 阅读全文

posted @ 2012-02-24 16:43 网名还没想好 阅读(262) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.1发表于2010-03-08四系统自动创建新的autorelease pool在生成新的Run Loop的时候,系统会自动创建新的autorelease pool(非常感谢网友hhyytt和neogui的提醒)。注意,此处不同于xcode在新建项目时自动生成的代码中加入的autorelease pool,xcode生成的代码可以被删除,但系统自动创建的新的aut 阅读全文

posted @ 2012-02-24 16:17 网名还没想好 阅读(168) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。版本 1.1发表于2010-03-08二口诀与范式1 口诀。1.1 谁创建,谁释放(类似于“谁污染,谁治理”)。如果你通过alloc、new或copy来创建一个对象,那么你必须调用release或autorelease。换句话说,不是你创建的,就不用你去释放。例如,你在一个函数中alloc生成了一个对象,且这个对象只在这个函数中被使用,那么你必须在这个函数中调用releas 阅读全文

posted @ 2012-02-24 16:15 网名还没想好 阅读(144) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.1 发表于2010-03-08前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。此文涉及的内存管理是针对于继承于NSObject的Cla 阅读全文

posted @ 2012-02-24 16:11 网名还没想好 阅读(173) 评论(0) 推荐(0) 编辑

摘要: 安装GNUstep GNUstep Windows Installer提供了Windows平台下的Objective-C的模拟开发环境,一共有四个软件包,其中GNUstep System和GNUstep Core是必装的,GNUstep Devel和Cairo Backend是选装的。甭管必装选装,一次性全安上,免得以后麻烦。 编写Hello, World! 安装完成后,在开始菜单里的GNUstep选项里执行shell,就能打开命令行,在这里就可以使用vi编写Object-C程序了,不过操作起来总有些繁琐,其实也可以直接在Windows里进入C:\GNUstep\home\usernam... 阅读全文

posted @ 2012-02-24 14:27 网名还没想好 阅读(345) 评论(0) 推荐(0) 编辑

摘要: 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义. 阅读全文

posted @ 2012-02-24 12:29 网名还没想好 阅读(8127) 评论(0) 推荐(4) 编辑