我們的介面檔 Encrypt.h 如下
#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 /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:Encrypt.h 功能:示範 Objective-C 程式 作者:張凱慶 時間:西元 2012 年 7 月 */
基本上利用 @property 就不需要用大括弧額外宣告屬性,可是在 Xcode 3.1 會發生編譯錯誤,因此我們的介面檔仍有加進大括弧宣告屬性。
@property 的宣告 (declaration) 如同大括弧中的屬性 (property) ,同樣要標明屬性的型態 (type)
@property (retain) NSMutableArray *cArray; @property (retain) NSArray *oArray;
此外還有小括弧的宣告值,有三大類,如下表
讀寫性 |
| ||||||||||||||||||
setter 相關 |
| ||||||||||||||||||
自動性 |
|
這裡,我們只有用 retain ,工作就是將引用計數 (reference count) 遞增。
對應到實作檔,我們的 Encrypt.m 雛型如下
#import <Foundation/Foundation.h> #import "Encrypt.h" @implementation Encrypt @synthesize cArray, oArray; - (id) initRandomEncrypt {} - (NSString *) toEncode: (NSString *) s {} - (NSString *) toDecode: (NSString *) s {} @end /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:Encrypt.m 功能:示範 Objective-C 程式 作者:張凱慶 時間:西元 2012 年 7 月 */
@synthesize 只要放屬性名稱就可以了
@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 有關。
張貼留言