Objective-C数组操作全解析
立即解锁
发布时间: 2025-08-21 01:15:16 阅读量: 2 订阅数: 7 


Mac编程新手入门指南
### Objective-C 数组操作全解析
#### 1. 数组基础与方法查找
在处理以 NS 前缀开头的类时,通常要查找可用于操作这些对象的属性和方法。苹果一般会提供所需的代码,这能减少我们编写和测试代码的工作量。
要将对象存储到数组中,可使用 `arrayWithObjects` 方法。使用该方法时,每个对象需用逗号分隔,并且在添加完对象后,必须使用 `nil` 值来标识数组的结束。若不使用 `nil`,可能会导致程序崩溃。
学习不同类可用方法的途径有:
- 让他人展示或讲解。
- 查找解释特定方法的书籍或网页。
- 研究他人编写的 Objective - C 程序。
查找合适的方法就像在不知道单词拼写的情况下查字典。首先应查找要操作对象的类参考,如 `NSArray`。若在该类参考中未找到所需方法,可查看该类继承的其他类的参考,因为 `NSArray` 类继承自 `NSObject` 类,所以所需方法可能在 `NSObject` 类参考中。
#### 2. 填充数组的方法
创建并填充数组时,最常用的方法是 `arrayWithObjects`,此外还有其他方法:
| 方法 | 描述 |
| ---- | ---- |
| `arrayWithArray` | 用现有数组的内容填充一个数组 |
| `arrayWithContentsOfFile` | 用文件中存储的数据填充一个数组 |
| `arrayWithContentsOfURL` | 用从 URL(网站)检索的数据填充一个数组 |
使用苹果预编写和测试过的方法,能更快速、可靠地构建复杂程序。
#### 3. 统计数组中的元素数量
存储数据到数组后,可使用 `count` 命令统计数组中的元素数量:
```objc
[arrayName count];
```
以下是统计数组元素数量的操作步骤:
1. 打开上一节的 `VariableTest` 项目。
2. 点击 `Classes` 文件夹中的 `VariableTestAppDelegate.m` 文件,该文件的代码会显示在 Xcode 窗口的中间面板。
3. 修改 `VariableTestAppDelegate.m` 文件的代码如下:
```objc
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSString *object1 = @"Hello";
NSString *object2 = @"world!";
NSNumber *object3 = [NSNumber numberWithInt:45];
NSArray *myArray;
myArray= [NSArray arrayWithObjects: object1, object2, object3, nil];
NSLog(@"Array contents = %@",[myArray componentsJoinedByString:@", "]);
NSLog (@"Total number of items in array = %i", [myArray count]);
}
```
4. 选择 `File ➤ Save` 或按 `⌘S` 保存更改。
5. 点击 `Build and Run` 按钮或选择 `Build ➤ Build and Run`,若代码无误,会弹出一个空白窗口。
6. 点击 `Stop` 按钮或选择 `Product ➤ Stop` 退出程序。
7. 选择 `Run ➤ Console` 或按 `⌘⇧R`,可看到 `NSLog` 命令输出的结果。
#### 4. 访问数组中的单个元素
数组中的元素通过索引来定位,在 Objective - C 中,数组是基于零的,即第一个元素的索引为 0,第二个元素的索引为 1,依此类推。
要检索数组中的特定元素,可使用 `objectAtIndex` 方法:
```objc
[arrayName objectAtIndex: index];
```
以下是检索数组元素的操作步骤:
1. 打开上一节的 `VariableTest` 项目。
2. 点击 `Classes` 文件夹中的 `VariableTestAppDelegate.m` 文件。
3. 修改 `VariableTestAppDelegate.m` 文件的代码如下:
```objc
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSString *object1 = @"Hello";
NSString *object2 = @"world!";
NSNumber *object3 = [NSNumber numberWithInt:45];
NSArray *myArray;
myArray= [NSArray arrayWithObjects
```
0
0
复制全文
相关推荐










