2013年9月18日 星期三

【職訓局-手機程式開發班】2013 9/18 ObjC

1.函數前面為加號為靜態可直接使用不須init

例:

+ (float) PI{
    float pi = 3.14;
    return pi;
}

NSLog(@"%f",[Test PI]); // 這邊就可直接使用

2.全域變數使用

#import "Test.h"

int gTest = 5; // 宣告時前面要加個小g代表是全域變數

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

    @autoreleasepool {
        
        Test *T = [[Test alloc] init];
        
        NSLog(@"%f",[Test PI]);
        
        NSLog(@"%i",[T TestG:10]); // 列印出10
        
        
    }
    return 0;
}

Test.m
- (int) TestG:(int)val{
    extern int gTest;
    gTest = val;
    return gTest;
}

3.物件初始化

test.m

- (id) initR:(float)setR{
    self = [super init];
    if (self){
        self.r = setR;
    }
    return self;
}

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

    @autoreleasepool {
        
        //Test *T = [[Test alloc] init];
        
        Test *T = [[Test alloc] initR:20]; // 可以多個初始化
        
        //T.r = 10;
        
        NSLog(@"%f",[T area]);
        
        
    }
    return 0;
}

4.靜態變數static

static int count = 0;
- (int) getCount{
    return count;
}

main.m
NSLog(@"%i",[T getCount]); // return 1
NSLog(@"%i",[T getCount]); // return 2