NSMutableArray 是另一種常用的陣列 (array) 物件 (object) ,屬於可變 (mutable) 的物件種類,裡頭可以放任何的型態的物件
建立 NSArray 很簡單,有一個類別方法 (class method) 與一個 init 方法 (method) 可供運用
名稱 |
+ arrayWithCapacity: |
– initWithCapacity: |
例如我們會利用 arrayWithCapacity: 建立有 26 個空格的陣列
cArray = [ NSMutableArray arrayWithCapacity : 26 ];
|
以下列出 NSMutableArray 的方法
功能 | 名稱 |
增加元素物件 | – addObject: |
– addObjectsFromArray: |
– insertObject:atIndex: |
– insertObjects:atIndexes: |
|
移除元素物件 | – removeAllObjects |
– removeLastObject |
– removeObject: |
– removeObject:inRange: |
– removeObjectAtIndex: |
– removeObjectsAtIndexes: |
– removeObjectIdenticalTo: |
– removeObjectIdenticalTo:inRange: |
– removeObjectsInArray: |
– removeObjectsInRange: |
|
替換元素物件 | – replaceObjectAtIndex:withObject: |
– setObject:atIndexedSubscript: |
– replaceObjectsAtIndexes:withObjects: |
– replaceObjectsInRange:withObjectsFromArray:range: |
– replaceObjectsInRange:withObjectsFromArray: |
– setArray: |
|
過濾內容 | – filterUsingPredicate: |
排列內容 | – exchangeObjectAtIndex:withObjectAtIndex: |
– sortUsingDescriptors: |
– sortUsingComparator: |
– sortWithOptions:usingComparator: |
– sortUsingFunction:context: |
– sortUsingSelector: |
|
關於 NSMutableArray 的詳細定義與說明,請參考
NSMutableArray Class Reference
我們會利用迴圈 (loop) 計算密碼表中每一個對應的字元,然後利用 addObject: 將該字元(其實是 NSString 物件)加入 cArray 之中,程式如下
int i, d, ci, count, m;
for (i = 0 , count = c;i < n;i++) {
ci = count;
d = ci * a + b;
m = d % n;
[cArray addObject : [oArray objectAtIndex : m ]];
count++;
}
|
NSMutableArray 大致介紹到這裡,接下來進入重頭戲,我們要來設計 initRandomEncrypt 方法,其他物件導向程式語言 (object-oriented progamming language) 稱之為
建構子 (constructor) 。
中英文術語對照 |
陣列 | array |
物件 | object |
可變 | mutable |
類別方法 | class method |
方法 | method |
迴圈 | loop |
物件導向程式語言 | object-oriented progamming language |
建構子 | constructor |
您可以繼續參考
軟體開發
相關目錄
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
沒有留言:
張貼留言