`

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;
}



其结果就是:

留做纪念,几乎一年没有写代码了,更别说是写这么个新玩意——Object-C。
如何找回自己?先从熟悉的事情做起。。。
  • 大小: 133.1 KB
3
0
分享到:
评论
2 楼 zcq100 2011-12-19  
恭喜你迈入Object-c第一步,早日脱离java,早日走出痛苦。
上述代码中处处散发着java的味道
1 楼 qq443507232 2011-12-12  
    mark 纪念你的纪念

相关推荐

Global site tag (gtag.js) - Google Analytics