
我們的介面檔 Encrypt.h 如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #import <Foundation/Foundation.h> @interface Encrypt : NSObject { NSMutableArray *cArray; NSArray *oArray; } @property ( retain ) NSMutableArray *cArray; @property ( retain ) NSArray *oArray; - ( id ) initRandomEncrypt; - ( NSString *) toEncode : ( NSString *) s; - ( NSString *) toDecode : ( NSString *) s; @end /* 《程式語言教學誌》的範例程式 檔名:Encrypt.h 功能:示範 Objective-C 程式 作者:張凱慶 時間:西元 2012 年 7 月 */ |
基本上利用 @property 就不需要用大括弧額外宣告屬性,可是在 Xcode 3.1 會發生編譯錯誤,因此我們的介面檔仍有加進大括弧宣告屬性。
@property 的宣告 (declaration) 如同大括弧中的屬性 (property) ,同樣要標明屬性的型態 (type)
9 10 | @property ( retain ) NSMutableArray *cArray; @property ( retain ) NSArray *oArray; |
此外還有小括弧的宣告值,有三大類,如下表
讀寫性 |
| ||||||||||||||||||
setter 相關 |
| ||||||||||||||||||
自動性 |
|
這裡,我們只有用 retain ,工作就是將引用計數 (reference count) 遞增。
對應到實作檔,我們的 Encrypt.m 雛型如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #import <Foundation/Foundation.h> #import "Encrypt.h" @implementation Encrypt @synthesize cArray, oArray; - ( id ) initRandomEncrypt {} - ( NSString *) toEncode : ( NSString *) s {} - ( NSString *) toDecode : ( NSString *) s {} @end /* 《程式語言教學誌》的範例程式 檔名:Encrypt.m 功能:示範 Objective-C 程式 作者:張凱慶 時間:西元 2012 年 7 月 */ |
@synthesize 只要放屬性名稱就可以了
6 | @synthesize cArray, oArray; |
有三個方法 (method) 等著實作,別急,我們先來詳細討論一下屬性之一的 oArray ,也就是 NSArray 類別 (class) 囉!
中英文術語對照 | |
---|---|
介面檔 | interface file |
實作檔 | implementation file |
宣告 | declaration |
屬性 | property |
型態 | type |
引用計數 | reference count |
方法 | method |
類別 | class |
您可以繼續參考
軟體開發
相關目錄
Objective-C 入門指南
Objective-C 教材
首頁
參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide
1 則留言:
atomic/nonatomic 不是「自動性」。比較接近「一致性」,和 multi-thread programming 有關。
張貼留言