[转] 从 C 到 Objective C 入门1

转自: http://blog.liuhongwei.cn/iphone/objective-c/php

进军iPhone开发,最大的难点之一就是怪异的Objective C语法了。不过,了解以后才发现,原来仅仅是形式上与C++、Java有差别,属于换汤不换药。若是有C语言基础,又用过C++、Java,2天以内掌握Objective C,没有问题,至少看例子程序会感受顺眼不少。html

Objective C脱胎于C语言,苹果版的开发编译环境就是大名鼎鼎的Xcode,其中的Cocoa就是Objective C库函数。objective-c

与C语言一致的部分

int main( int argc, const char *argv[] ) {
    printf( "hello worldn" );
    return 0;
}
  • 数据类型,表达式,各类运算符
  • 循环:for, while, do while, break, continue
  • 分支:if, else, switch

类定义@interface

#import <Foundation/NSObject.h>
 
@interface Bank: NSObject {
    NSString *name;
    int amount;
}
 
-(void) print;
-(void) addAmount: (int) a;
-(int) amount;
-(Bank *) initWithName: (NSString *) n andAmount: (int) a;
 
@end
  • 写在Bank.h中
  • #import是引入库函数
  • @interface是代表定义了一个类,冒号后面是父类类型
  • 两个大括号之间的部分就是类的成员变量,只有类函数可以直接访问
  • - 代表要定义一个类对象级别的函数;若是是+,代表要定义类级别的函数
  • 返回值与参数的类型放在()内
  • 函数定义中的: 代表后面会跟一个参数
  • 若是函数有多个参数,要写多个xxx:
  • 类的函数定义结束后,使用@end关闭

类实现@implementation

#import "Bank.h"
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
 
@implementation Bank
-(void) print {
    printf("Total amount is %i", amount);
}
 
-(void) addAmount: (int) a {
    amount += a;
}
 
-(int) amount{
    return amount;
}
 
-(Bank *) initWithName: (NSString *) n andAmount: (int) a{
    self = [super init];
    name = n;
    amount = a;
    return self;
}
 
@end
  • 写在Bank.m
  • @implementation定义函数的具体内容,后面接着类名
  • 函数头按照定义来写
  • 最后用@end来结束全部函数体

调用写好的类和类函数

#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import "Bank.h"
 
int main( int argc, const char *argv[] ) {
    //建立新对象,使用缺省初始化函数
    Bank *bankDefault = [[Bank alloc] init];
 
   //建立新对象,使用自定义初始化函数
   Bank *bank = [[Bank alloc] initWithName: @"Harry" andAmount: 28];
 
    [bank addAmount: 1];
 
    [bank print];
 
    [bank free]; // 释放对象
   [bankDefault free]; // 释放对象
 
    return 0;
}
  • 调用类函数的时候,首先建立并初始化对象。这里咱们使用缺省的init和咱们自定义的initWithName来分别初始化一个对象;
  • 使用[]来调用函数,按照次序分别是:对象名,函数名,: 参数值(若是有),函数名第二部分(若是有),:第二参数值(若是有);

参考:

相关文章
相关标签/搜索