Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26234
  • 博文数量: 16
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-30 14:08
文章存档

2011年(2)

2009年(14)

我的朋友
最近访客

分类: 嵌入式

2011-10-08 20:25:57

写这个博文的原因有诸多个。既可以促使自己继续学习下去,也可以留作记录。

而且我一直相信,博文是一个最好的简历。

以前只有linux下的编程经验并没有Mac平台下的经验。不过根据我使用mac系统一个多月来的感受是这东西其实跟流行的Ubuntu等差不多,有非常漂亮的UI和操作体验 ,重要的是还有像linux一样的强大的命令行shell。

我的计划以 Obejctive-C -> iOS SDK -> App 这个顺序来学习,中间贯穿XcodeIDE使用的学习。 因为我觉得像Xcode这种IDE是使用当中逐渐熟悉其用法而不是一上来就从头看到尾。 不过这IDE跟其他VS差不多,估计有经验的朋友都很容易上手。

这几天的学习来看Objective-C(以下简称  Obj-C)学习强度介于C++跟C之间。 有C++基础的朋友当然很容易上手,只是C经验的也可以,就是要把思维从面向过程转换到面向对象有点费劲。

好,废话不多,先来一段code来看看大体是啥样的。

这段code展现一个比较简单的有class的程序。还有一点就是这里假设你熟悉C编程语言,而且我重点介绍Obj-C独有的东西,例如下面介绍的Class。


  1. /* Inport System file from Mac os*/
  2. #import <Foundation/Foundation.h>

  3. /* Define Class Fraction */
  4. @interface Fraction : NSObject {
  5. @private
  6.     int up;
  7.     int down;
  8. }

  9. -(void) print;
  10. -(void) setUpNumber:(int)up_number;
  11. -(void) setDownNumber:(int)down_number;
  12. @end

  13. @implementation Fraction

  14. -(void) print
  15. {
  16.     NSLog(@"%d / %d = %d", up , down , up/down);
  17. }

  18. -(void) setUpNumber:(int)up_number
  19. {
  20.     NSLog(@"Setting Up Number with %d", up_number);
  21.     up = up_number;
  22. }

  23. -(void) setDownNumber:(int)down_number
  24. {
  25.     NSLog(@"Setting Down Number with %d", down_number);
  26.     down = down_number;
  27. }
  28. @end
  29. /* __End__ Define Class Fraction */

  30. int main (int argc, const char * argv[])
  31. {

  32.     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

  33.     // insert code here...
  34.     NSLog(@"Hope it's the long term way to develop app for Mac Platform");
  35.     
  36.     int a = 10;
  37.     int b = 20;
  38.     int sum = a + b;
  39.     NSLog(@"the sum of a + b = %d ",sum);
  40.     
  41.     Fraction *Fraction_first;
  42.     Fraction_first = [[Fraction alloc] init];
  43.     
  44.     [Fraction_first setUpNumber:1];
  45.     [Fraction_first setDownNumber:5];
  46.     [Fraction_first print];

  47.     [pool drain];
  48.     return 0;
  49. }

1:@interface 用于定义类,后面的:指定其父类
2:@private 指定其私有变量
3:以-(void)开头的一串函数是其method。
4:类定义结束使用@end来结尾
5:这里跟C++不同的是,obj-c中以 [instance method]来调用实例中的method方法,而C++中是instance.method() 或者 instance_pointer->method() 来调用其方法。
6:定义一个实例的方法是 Class_name * instance =[[Class_name alloc] init];
可见是先调用alloc函数,然后依据此结果再调用init函数。我觉得这应该跟C++中调用构造函数是一个道理。
阅读(215) | 评论(0) | 转发(0) |
0

上一篇:博客已升级,请注意变更地址

下一篇:没有了

给主人留下些什么吧!~~