Objective-C小试牛刀
昨天看了一遍《Learn Objective-C on the Mac》,晦涩难懂。这本书的编码环境实在是过于陈旧,跟我现在用的Xcode4.2差距甚远。边看边写边求索于谷歌、百度。最终,凭着尚有老本的C/C++基础,弄明白这是怎么一回事。
C语言的确是万源之源,只要你还有那么点C的基础,入手Object-C就不算太难。
做个简单的纪录,定义一个人物类,只要求有名字,年龄。
先做个接口定义,要求对成员变量赋值,并且输出结果
#import <Foundation/Foundation.h>@interface Person : NSObject {// 是不是可以理解为私有变量,成员变量?那本书里没有这个语法。@private NSString *name; int age;}//设置参数方法//变量类型要放在括号里,很奇特的语法- (void) setName:(NSString *) nameValue;- (void) setAge:(int) ageValue;//打印数据- (void) print;@end#import "Person.h"@implementation Person- (void) setName:(NSString *)nameValue{ name = nameValue;}- (void) setAge:(int)ageValue{ age = ageValue;}- (void) print{ // 字符串格式化,nil据说就是0,我也不知道该怎么描述它 // 还要用到stringWithFormat,叫做类方法 NSLog([NSString stringWithFormat:@"姓名:%@",name], nil); NSLog(@"年龄:%d",age);}@end#import <Foundation/Foundation.h>#import "Person.h"int main (int argc, const char * argv[]){ @autoreleasepool { // 实例化Person,这里都是在[]中完成的 // [Person new]意思是向Person发送new指令 Person *person = [Person new]; // 调用setAge方法,冒号后面赋值 [person setAge:29]; // NSString变量初始化时需要用@符号前缀 [person setName:@"Snowolf"]; //调用print方法 [person print]; } return 0;}
mark 纪念你的纪念 2 楼 zcq100 2011-12-19 恭喜你迈入Object-c第一步,早日脱离java,早日走出痛苦。