我需要在Objective-C中创建一个可变的二维array.

例如,我有:

NSMutableArray *sections;
NSMutableArray *rows;

sections中的每一项都由一个数组rows组成.rows是一个包含对象的array.

我想这样做:

[ sections[i] addObject: objectToAdd]; //I want to add a new row

为了达到这样的目的:

在Objective-C中有没有办法做到这一点?

推荐答案

首先,在使用之前必须分配和初始化对象,比如:行为NSMutableArray * sections = [[NSMutableArray alloc] initWithCapacity:10];,每个行需要一个对象,而不是一个NSMutableArray * rows;

第二,根据您是否使用Xcode 4.4+(它引入了订阅,也称为section[i]section[i] = …),您可能需要使用[sections objectAtIndex:i]进行读取,使用[section replaceObjectAtIndex:i withObject: objectToAdd]进行写入.

第三,数组不能有孔,即obj1、nil、obj2.必须 for each 索引提供实际对象.如果你不需要放任何东西,你可以用NSNull个物体.

此外,不要忘记,还可以将Objective-C对象存储在普通C数组中:

id table[lnum][rnum];
table[i][j] = myObj;

Objective-c相关问答推荐

iOS:警告try 呈现其视图不在窗口层次 struct 中的 ViewController

OCUnit 的单元测试示例

UIAlertView 按钮操作

为什么在目标 c 的静态上下文中允许 self

performSelector 的返回值:

多个(两个)持久存储可以与一个对象模型一起使用,同时保持一个到另一个的关系吗?

NSMutableDictionary 线程安全

如何知道 NSAssert 在发布版本中是否被禁用?

如何从 Xcode4 生成 UML 图

有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSDate?

从我在 iPhone 上的应用程序调用官方 *Settings* 应用程序

如何获得本地化的 Cancel、Done 等?

动画 UIButton 状态变化

ios 11 UITabBar UITabBarItem 定位问题

无法加载 xcode 项目,因为它已从另一个项目或工作区打开

UITableViewCell 右侧有图像?

计算 UILabel 文本大小

AVAssetImageGenerator 提供旋转的图像

Objective-c 2.0 中的可选参数?

更改 UITextField 占位符字体