2011年12月12日 星期一

iOS - Training (13) - 修飾詞

static, public -----
  • "+": 與Java的static相同,執行完後面的行為後隨時會被回收
  • "-": 與Java的public類似(但private方法的前面也是使用此符號),執行完後面的行為後因為有實體的記憶體位置,故會放入release pool裡等待釋放

@interface TEST: NSObject 
// 公開方法
- (void)publicMethod;

// 靜態方法
+ (void)staticMethod;
@end

使用公開方法
TEST* test = [TEST alloc] init];
[test publicMethod];
[test release];

使用靜態方法
[TEST staticMethod]
-----

@property -----
  • 默認屬性
    • readwrite 自動生成存取器setter、getter
    • assign 處理基礎類型,如int、float...
  • 修飾屬性
    • natomic 與Java的synchronized類似,在多執行緒時保護參數的同步
    • readonly 只生成getter不會有setter方法
    • copy 與Java的clone類似,複製一個與原物件不同記憶體位置的新物件
    • retain 自動retain物件
TEST.h
@interface TEST: NSObject {
    NSString* param;
}
@property  (nonatomic, retain) NSString *param;
@end
TEST.m
@implementation TEST


@synthesize param;


- (id)init{}
@end
-----

參數的@public, @protected, @private -----


@interface TEST: NSObject {
    @public
        NSString* publicString;
   
    @protected
        NSString* protectedString;
   
    @private
        NSString* privateString;
}
@end

-----

方法的private宣告 -----
  • 寫在實現的文件中,此範例為TEST.m
  • 需在@implementation上描述
#import "TEST.h"

@interface TEST (private)
- (void) privateMethod
@end

@implementation TEST

- (id)init
{
  ...
}

- (void)privateMethod
{
  ...
}
@end
-----

沒有留言:

張貼留言