免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 907 | 回复: 0
打印 上一主题 下一主题

objective-C学习 [复制链接]

论坛徽章:
2
卯兔
日期:2013-09-22 20:08:052015亚冠之广州富力
日期:2015-05-18 17:31:30
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:03 |只看该作者 |倒序浏览
Objective-C:拥有一些附加特性的C语言,或者称为C的扩展集.
在Xcode这个开发工具中可以支持ANSI C, Objective-C , C++语言编译,编译器是GCC.这个信息很重要个人认为.
  1. @interface Circle : NSObject
  2. {
  3.  ShapeColor fillColor;
  4.  ShapeRect bounds;
  5. }
  6. - (void) setFillColor: (ShapeColor) fillColor;
  7. - (void) setBounds: (ShapeRect) bounds;
  8. - (void) draw;
  9. @end
@interface Circle : NSObject //一个编译器要编译三种语言,总得弄区别标志符号出来吧
 
@ 这个符号就是告诉编译器,接下来的代码是Objective-C  interface就是接口的意思
 
Circle : NSObject // : 这个符号也可以理解为Objective-C 的特有标识符,告诉编译器Circle类来自和继承NSObject类的特性.
 
- (void) setFillColor: (ShapeColor) fillColor;// - 又一个特有标识符,
(void) 表示该函数返回的类型是void型,
setFillColor  函数名, 在这里应该叫方法
: 表示向编译器开始传递参数
(ShapeColor)  参数类型名
fillColor  参数名
@end // 表示结束
整个函数等于C语言的 void setFillColor( ShapeColor fillColor);
整个代码感觉就像C语言中的函数和结构体申明.
 
函数(方法)申明之后,总得定义吧,下面是定义的代码
  1. @implementation Circle
  2. - (void) setFillColor: (ShapeColor) c
  3. {
  4.  fillColor = c;
  5. }
  6. - (void) setBounds: (ShapeRect) b
  7. {
  8.  bounds = b;
  9. }
  10. - (void) draw
  11. {
  12.  NSLog(@"drwing a circle at (%d %d %d %d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));
  13. }
NSLog() 相当C语言中的printf(),但编译器总得区别开,所以字符串前面加个@表示Objective-C的字符串
@implementation 表示类的实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP