void drawShapes(Shape shapes[],int count){
int i;
for(i=0;i< count;i++){
id shape=shapes[i];
[shape draw];
}
}
1.shapes为一个类型是Shape的结构体数组。
id shape=shapes[i];
id 为一个指向其中某个结构的指针。
[shape draw];
表示对对象shape做draw操作(向shape发送消息draw)。
2.
@interface Circle:NSObject{
ShapeColor fillColor;
ShapeRect bounds;
}
-(void) setFillColor:(ShapeColor) fillColor;
//[circle setFillColor: fillColor]
-(void) setBounds: (ShapeRect) bounds;
//[circle setBounes:bounds]
-(void) draw;
//[circle draw]
@end
这里定义了一个名为Circle并继承自NSObject的接口,其中包含了两个属性,分别死color和bounds;三个方法声明。方法声明和函数原形的区别在于是否有先行短线"-" 。
-(void) setFillColor:(ShapeColor) fillColor;
方法声明的结构为:
- (返回类型)方法名[:(参数类型) 参数1值名 参数2名:(参数类型) 参数2值名 ...]
方法调用(中缀符的使用):
[circle setFillColor: fillColor]
意思同:
circle.setFillColor(fillColor);
如果是多个参数:
[textThing setStringValue: @"hello there"
color: kBlueColor];
@"hello there"和 kBlueColor都为传入的参数 (?setStringValue和color是参数名还是方法名的一部分?)
3.Circle的实现
@implementation Circle
-(void) setFillColor:(ShapeColor) c{
//fillColor=c;
self->fillColor=c;
}//set color
-(void) setBounds:(ShapeRect) b{
bounds=b;
}//set bounds
-(void) draw{
NSLog(@"draw a circle at (%d,%d,%d,%d) in %@ ",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));
}
@end
和声明差别不大,对原先的方法做了具体的实现。
self->fillColor=c;
self是一个隐藏传送的参数,代表消息接收对象本身。
4.Circle的实例化
[Circle new]
objective-c中可以把类当成对象一样来发送消息。
分享到:
相关推荐
Objective-c学习笔记 Objective-c学习笔记
Objective-C程序设计 ,Objective-C中常用类的常用方法总结截图
Objective-c、UIKit自学笔记
Effective Objective-C是本学习Objective-C的好书,没有见pdf版,亚马逊上的这儿本书的价格不菲。让我们来看看书里的内容和完整的学习笔记吧。
这篇笔记主要介绍了Objective-C的一些基础知识,包括以下几个方面: 1. Objective-C概述,介绍了Objective-C的来源、发展历史和作为面向对象的C语言的特点。 2. 第一个OC程序,讲解了如何创建一个OC项目,解释了一些OC...
非常全面的Objective-c的学习教程,里面包含了很多程序员的学习笔记有图文解说,还有语法解说,还有使用函数以及如何创建,不管你是新手还是高手都是你Objective-c开发的好工具好帮手,里面还包含了学习网站的教学...
Objective-C 学习笔记 IOS软件开发
苹果的iPhone和iPad应用开发都指定使用同一开发语言:Objective-C语言。这是一种简单的面向对象编程语言,它的基础是C程序设计语言。Objective-C不仅功能强大,而且简单易学。Objective-C已经成为苹果系统下应用程序...
Objective-C是一种简单的...Objective-C通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。
是个人iOS开发初期对数组操作所做的笔记整理,包含了大部分NSArray和NSMutableArray操作方法
涵盖了objetive-c语言的所有基本知识,变量、函数、打印、屏幕输入,教程内附完整笔记源码
Objective-C学习资料(内置学习笔记,各内容源码) 是我近学习2个月并整理的东西,对于初学者有一定的帮助
Objective C 学习笔记
#Swift学习: 从Objective-C到Swift 这篇文章是自己学习Swift的笔记与深化。希望这篇文章能够帮助已经有Objective-C经验的开发者更快地学习Swift。同时也品味到Swift的精妙之处。 结论放在开头: 我认为Swift比...
学习心得,对oc的简要讲解,图形解析,清晰明了。
Objective-C个人学习笔记
笔者精心总结的,希望给读者帮助,很好的文档,初学者的良师益友
这是Objective-C程序设计(第4版)pdf版的,里面有我自己看过后做的笔记之类的,希望在大家阅读感到不清楚的时候能够提供大家一些帮助。
个人学习objective-c和xcode helloworld 笔记,比较了objective-c 和C++ JAVA的一些区别
二进制堆用于 CFBinaryHeap 的简单 Objective-C 包装器,可用于 Objective-C/Swift 项目。 这实际上是一个最小堆。用法导入数据结构#import "JTBinaryHeap" 使用addValue:添加项目addValue: 使用minimumValue或...