写这个博文的原因有诸多个。既可以促使自己继续学习下去,也可以留作记录。
而且我一直相信,博文是一个最好的简历。
以前只有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。
- /* Inport System file from Mac os*/
-
#import <Foundation/Foundation.h>
-
-
/* Define Class Fraction */
-
@interface Fraction : NSObject {
-
@private
-
int up;
-
int down;
-
}
-
-
-(void) print;
-
-(void) setUpNumber:(int)up_number;
-
-(void) setDownNumber:(int)down_number;
-
@end
-
-
@implementation Fraction
-
-
-(void) print
-
{
-
NSLog(@"%d / %d = %d", up , down , up/down);
-
}
-
-
-(void) setUpNumber:(int)up_number
-
{
-
NSLog(@"Setting Up Number with %d", up_number);
-
up = up_number;
-
}
-
-
-(void) setDownNumber:(int)down_number
-
{
-
NSLog(@"Setting Down Number with %d", down_number);
-
down = down_number;
-
}
-
@end
-
/* __End__ Define Class Fraction */
-
-
int main (int argc, const char * argv[])
-
{
-
-
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
-
// insert code here...
-
NSLog(@"Hope it's the long term way to develop app for Mac Platform");
-
-
int a = 10;
-
int b = 20;
-
int sum = a + b;
-
NSLog(@"the sum of a + b = %d ",sum);
-
-
Fraction *Fraction_first;
-
Fraction_first = [[Fraction alloc] init];
-
-
[Fraction_first setUpNumber:1];
-
[Fraction_first setDownNumber:5];
-
[Fraction_first print];
-
-
[pool drain];
-
return 0;
-
}
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++中调用构造函数是一个道理。 |