Objective-C
lego2816
这个作者很懒,什么都没留下…
展开
-
Property and Synthesize
承上篇,因為在類別裡,instance variable(以下簡稱ivar)預設是protected的,也就是說只有該類別以及它的子類別才能存取它,如果要給外部使用的話,則需要來幫它加個setter/getter。但每次只為了一個ivar就要寫一對的setter/getter转载 2011-08-26 15:04:25 · 1138 阅读 · 0 评论 -
Objective-C表达式-用 Objective-C 表达式创建计算器类
为了对苹果开发者Mike之前关于表达式的所有博文进行总结,我们将创建一个Calculator类。它是一个简单的四则运算器,可用来执行加,减,乘,除运算。类似于常见的计算器,这种计算器必须能够记录累加结果,就是通常所说的累加器。因此方法必须能够执行以下操作:将累加器设置为特定值,将转载 2011-08-26 14:03:51 · 1927 阅读 · 0 评论 -
Objective-C表达式-Objective-C 赋值运算符
在Objective-C中,允许使用一般格式将算术运算符和赋值运算符合并在一起:op=在这个格式中,op是任何算术运算符,包括+,-,*,/和%。此外,op还可以是任何用于移位和屏蔽操作的位运算符。考虑下面这条语句:count +=转载 2011-08-26 14:03:11 · 739 阅读 · 0 评论 -
Objective-C表达式-Objective-C 整型值和浮点值的相互转换
要想在以后更有效地开发Objective-C程序,就必须理解整型值和浮点值之间进行隐式转换的规则。下面的范例4-5表明数值数据类型间的一些简单转换。01 // Basic conversions in Objective-C02 03 #import转载 2011-08-26 14:02:41 · 1005 阅读 · 0 评论 -
Objective-C表达式-模运算符
模运算符是由百分号(%)表示。Mike将通过分析范例4-4来确定这种运算符的工作方式:01 // The Modulus Operator02 03 #import 04 05 int main (int argc, const char转载 2011-08-26 14:02:03 · 5588 阅读 · 0 评论 -
Objective-C表达式-整数运算和一元负号运算符
在二元运算的基础上,苹果开发者Mike引入整数运算的概念。大家可以看下范例代码4-3:01 // More arithmatic expressions02 03 #import 04 05 int main (int argc, const ch转载 2011-08-26 11:38:29 · 1385 阅读 · 0 评论 -
Objective-C数量类型-Objective-C id 数据类型
id 数据类型可存储任何类型的对象。从某种意义说,它是一般对象类型。例如,程序行 id number; 将number声明为id类型的变量。可声明方法使其具有id类型的返回值,如下: -(id) newObject: (转载 2011-08-26 11:29:25 · 573 阅读 · 0 评论 -
Objective-C数量类型-Objective-C char 字符类型
最后一个 基本数据类型 char 可储存单个字符。将字符放入一对单引号中就能得到字符常量。因此,'a',';' 和 '0' 都是合法的字符常量。第一个常量表示字母 a,第二个表示分号,第三个表示字符 0,它并不等同于数字 0。不要把字符常量和 C 风格的字符串混为一谈,字符常转载 2011-08-26 11:27:09 · 820 阅读 · 0 评论 -
Objective-C数量类型-Objective-C int 整数类型
今天 Mike 要和大家聊下在 Objective-C 中的int 数据类型,整数常量由一个或多个数字的序列组成。序列前的负号表示该值是一个负数。值 168,-12 和 0 都是合法的整数常量。数字中间不允许插入空格,大于 999 的值不能用逗号来表示(因此,值 15,000转载 2011-08-26 11:24:30 · 1156 阅读 · 0 评论 -
Objective-C位运算符-按位与运算符
对两个值执行与计算时,会逐位比较两个值的二进制表示。第一个值与第二个值对应位都为1时,在结果的对应位上就会得到1;其他的组合在结果中都得到0。如果b1和b2表示两个运算数的对应位,那么下面这个真值表就显示了在b1和b2所有可能值下对b1和b2执行与操作的结果。 b1转载 2011-08-26 14:17:47 · 1160 阅读 · 0 评论 -
Objective-C位运算符-按位或运算符
在Objective-C中对两个值执行按位或运算时,会逐位比较两个值的二进制表示。此时,只要第一个值或者第二个值的相应位是1,那么结果的对应位就是1。按位或操作符的真值表: b1 b2 b1 | b2-------------------转载 2011-08-26 14:18:15 · 1261 阅读 · 0 评论 -
Objective-C位运算符-一次求反运算符
一次求反运算符是一元运算符,它的作用仅是对运算数的位“翻转”。将运算数的每个是1的位翻转为0,而将每个是0的位翻转为1。下面是真值表: b1 ~b1------------- 0 1 1 0如果不知道运转载 2011-08-26 14:19:15 · 686 阅读 · 0 评论 -
Objective-C类-为分数类添加最大公约数方法
我们基于 《对分数进行加法操作》 一文中的范例 7-3,进一步完善分数类。上一次的计算,1/4 和 1/2 相加的结果显示为 6/8,而不是我们所期望的 3/4,这是因为加法例程只执行算术不做其他处理,它不会将结果相约。所以今天我们添加新的 reduce 方法。算法在之前的博转载 2011-08-26 14:26:33 · 704 阅读 · 0 评论 -
Objective-C类-Objective-C 方法的参数
《Objective-C 局部变量》 一文中简要地介绍了局部变量。这里要谈的是局部变量的一个广泛应用,方法的参数。执行方法时,通过方法传递的任何参数都被复制到局部变量中。因为方法使用参数的副本,所以不能改变通过方法传递的原值。这是一个重要概念。假设有个名为 calculate转载 2011-08-26 14:25:26 · 503 阅读 · 0 评论 -
Objective-C类-对分数进行加法操作
在这里和大家继续讨论前文《Objective-C 具有多个参数的方法》中的 Fraction 类。我们打算实现一个方法 add:,能够让一个分数与另一个分数相加,并把一个分数作为参数。这个方法的声明如下:-(void) add: (Fraction *) f;转载 2011-08-26 14:24:29 · 953 阅读 · 0 评论 -
Objective-C类-Objective-C 具有多个参数的方法
我们继续就《Objective-C 分离接口和实现文件》一文中的 Fraction 类说事。如果有一个方法能够只用一条消息即可设置 numerator 同时又可设置 denominator,那该有多好啊!没问题,通过列出每个连续的方法并用冒号将其连起来,就可以定义一个接受多个转载 2011-08-26 14:23:44 · 841 阅读 · 0 评论 -
Objective-C类-Objective-C 合成存取器方法
今天 Mike 要聊的是Objective-C 2.0 下一个很方便的功能:自动生成设置函数方法和获取函数方法 (统称为存取器方法)。第一步是在接口部分中实用 @property 指令标识属性。这些属性通常是实例变量。在前文 《Objective-C 分离接口转载 2011-08-26 14:23:17 · 1781 阅读 · 0 评论 -
Objective-C位运算符-向右移位运算符
与向左移位运算符比起来,这个向右移位运算符(>>)显得稍微复杂些。从值的低位移出的位将丢失。把无符号的值向右移位,也就是总在左侧也就是高位移入0。对于有符号值而言,左侧移入1还是0依赖于被移动数字的符号,还取决于该操作在计算机上的实现方式。如果符号位是0(表示该值是正的),不管哪转载 2011-08-26 14:21:05 · 1511 阅读 · 0 评论 -
Objective-C位运算符-向左移位运算符
对值执行向左移位运算,游戏规则就是与该操作关联的是该值要移动的位置(或位)数目。超出数据项的高位的位将丢失,而从低位移入的值总为0。因此,如果w1等于3,那么表达式w1 结果就是3向左移一位,这样产生的6赋值给w1。转载 2011-08-26 14:20:33 · 1755 阅读 · 0 评论 -
Objective-C位运算符-位运算符的程序实例
Mike发个范例4-7,来演示下前面介绍的四种各种位运算符:按位与,按位或,按位异或,一次求反。01 // Bitwise operators illustrated02 03 #import 04 05 int main (int argc, con转载 2011-08-26 14:19:51 · 569 阅读 · 0 评论 -
Objective-C数量类型-Objective-C 基本数据类型和常量
在前文谈过实例变量的访问和数据封装后,关于 Objective-C 的类,对象和方法这些基本的概念就告一个段落。接下来进入第 4 部分,数据类型。这将主要讨论 Objective-C 的几种基本数据类型。Mike在之前提及过基本数据类型 int,但 int 类转载 2011-08-26 11:23:53 · 828 阅读 · 0 评论 -
Objective-C面向对象-用于处理分数的 Objective-C 类
谈过了对象,实例和方法这些基本的面向对象概念后。接下来不妨定义个实际的类,并学习如何使用类的实例。进而领略Objective-C摄人心魄的秩序和美丽。范例3-1,下面是一个简单的处理分数的程序:01 // Simple program to work wi转载 2011-08-26 11:21:59 · 729 阅读 · 1 评论 -
Objective-C数量类型-Objective-C 限定词 long short 等
在Objective-C里有如下几个限定词需要了解:long,long long, short,unsigned,signed long 如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展转载 2011-08-26 11:28:47 · 911 阅读 · 0 评论 -
Objective-C数量类型-基本数据类型的范例代码
以下内容是范例4-1,展示基本数据类型的输出:01 #import 02 03 int main (int argc, const char * argv[])04 {05 NSAutoreleasePool * pool = [[NSAuto转载 2011-08-26 11:27:46 · 521 阅读 · 0 评论 -
Objective-C数量类型-Objective-C double 双精度类型
类型 double 双精度与 类型float 非常相似,而在float变量所提供的值域不能满足要求时,就要使用 double 变量。声明为 double 类型的变量可存储的位数大概是 float 变量所存储的两倍多。大多数计算机使用 64 位来表示 double 值。转载 2011-08-26 11:25:37 · 1929 阅读 · 0 评论 -
Objective-C数量类型-Objective-C float 浮点类型
Mike 在介绍完 Objective-C 中的四大基本类型之一 int 类型 后,接下来不得不提的就是 float 类型。声明为 float 类型的变量可存储包含小数位的值。要区分浮点常量,可通过查看其是否包含小数点。可以省略小数点之前的数字,也可以省略之后的数字。然而,显转载 2011-08-26 11:25:02 · 1104 阅读 · 0 评论 -
Objective-C面向对象-实例变量的访问以及数据封装
用于处理分数的Objective-C类的基础上,增加两个名为获取函数 (getter) 的实例方法,来实现对实例变量的检索。之前,我们已经知道处理分数的方法如何通过名称直接访问两个实例变量 numerator 和 denominator 的情况。事实上,实例方法总转载 2011-08-26 11:23:14 · 1468 阅读 · 0 评论 -
Objective-C面向对象-如何在程序中使用多个分数
范例3-3,在前文用于处理分数的Objective-C类中范例3-2的基础上,将一个分数设置成2/3,另外个设置成3/7,并且显示他们。代码对比只有program 部分有变化。01 // Program to work with fractions - cont'转载 2011-08-26 11:22:41 · 408 阅读 · 0 评论 -
Objective-C初探-Objective-C 使用点运算符访问属性
Objective-C 语言允许你使用非常简便的语法访问属性。要获得 myFraction 中存储的 numerator 的值,可使用以下语句:[myFraction numerator]这会向 myFraction 对象发送 numerator 消息转载 2011-08-26 11:19:59 · 1135 阅读 · 0 评论 -
Objective-C初探-scanf 键盘输入
我们现在将使用scanf 例程来创建一个更加智能的三角数计算程序,它会询问用户要计算哪个三角数。下面是范例 5-4:01 #import 02 03 int main (int argc, const char * argv[])04 {05转载 2011-08-26 11:19:21 · 5748 阅读 · 0 评论 -
Objective-C表达式-二元算术运算
在Objective-C中,事实上和所有程序语言一样,在两个数相加时使用加号(+),在两个数相减时使用减号(-),在两个数相乘时使用乘号(*),在两个数相除时使用除号(/)。这些运算符称为二元算术运算符,因为它们运算两个值或项。至于在算术表达式的实际运算中,优先级如何界定?同小学转载 2011-08-26 11:36:33 · 1478 阅读 · 0 评论 -
Objective-C位运算符-Objective-C 位运算符
Objective-C语言有各种各样的运算符可处理数字中的特定位。这也就是位运算符的由来。具体有哪些,Mike整理了一下: 符号 运算 & 按位与 | 按位或转载 2011-08-26 14:06:35 · 566 阅读 · 0 评论 -
Objective-C位运算符-按位异或运算符
按位异或运算符,通常称为XOR运算符,遵守以下规则:对于两个运算数的相应位,如果任何一个位是1,但不是两者全为1,那么结果的对应位将是1;否则是0。该运算符的真值表: b1 b2 b1 ^ b2----------------------转载 2011-08-26 14:18:45 · 8948 阅读 · 0 评论 -
Objective-C面向对象-Objective-C 对象,实例和方法
什么是对象? 对象就是一个事物。在 Objective-C 中,把面向对象的程序设计看成是一个事物,而且我们想对这个事物做些工作。这就与过程性语言C语言迥然不同了。在C语言中,通常是先考虑要做什么,然后才关注对象。所以二者之间的思维模式几乎是完全相反的过程。转载 2011-08-26 11:21:24 · 666 阅读 · 0 评论 -
Objective-C初探-Objective-C NSLog 显示变量的值
前面我刚刚介绍完Objective-C分行文字输出,在这里就说明下如何显示变量的值范例2-4,直接将两个数50和25相加后存入整型变量sum,用NSLog输出这个值。01 #import 02 03 int main (int argc, cons转载 2011-08-26 11:18:38 · 754 阅读 · 0 评论 -
Objective-C初探-Objective-C NSLog 分行文字输出
续前面的Objective-C的第一个程序 HelloWorld,这里Mike进一步介绍如何实现分行文字输出。首先是范例2-2,增加新的一行NSLog以显示更多的内容:01 #import 02 03 int main (int argc, con转载 2011-08-26 11:17:51 · 954 阅读 · 0 评论 -
Objective-C初探-如何搭建和使用 Xcode 开发环境
今天我们就以《Objective-C 2.0 程序设计》一书作为基础,开始 Cocoa 编程之旅吧!由于第一章是简介,所以正文和代码都从第二章 Objective-C 程序设计 开始。首先,Mike交代下为什么把这本书选为 Sample。在对比了好几本相关转载 2011-08-26 11:15:48 · 879 阅读 · 0 评论 -
Objective-C类-Objective-C self 关键字
在Objective-C 中,self 关键字用来指明对象是当前方法的接收者。前面的范例 7-4 中,我们在 add: 方法之外约简了分数,我们还可以使用 reduce 方法在 add: 中进行约简。只需插入如下代码即可:[self reduce];转载 2011-08-26 14:27:01 · 698 阅读 · 0 评论 -
Objective-C类-Objective-C 局部静态变量 static
在变量声明前加上关键字 static,可以使局部变量保留多次调用一个方法所得的值。例如:static int hitCount = 0;声明整数 hitCount 是一个静态变量。和其他常见的局部变量不同,静态变量的初始值为 0,所以前面显示的初始值是转载 2011-08-26 14:25:57 · 1200 阅读 · 0 评论 -
Objective-C类-Objective-C 局部变量简述
Objective-C局部变量的值只在方法运行时才存在并且只能在定义它们的方法中访问。局部变量没有默认的初始值,所以在使用前要先赋值。并且和实例变量不同,这些局部变量不存在于内存中,也就是说,当方法返回时,这些变量的值都消失了。每次调用方法,该方法中的局部变量 (如果有的话)转载 2011-08-26 14:24:56 · 1063 阅读 · 0 评论