首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在目标C中创建2D NSArray或NSMutableArray?

在目标C中创建2D NSArray或NSMutableArray可以通过嵌套数组的方式实现。下面是创建2D NSArray和NSMutableArray的示例代码:

  1. 使用NSArray创建2D数组:
代码语言:objective-c
复制
// 创建一个2D NSArray
NSArray *array1 = @[@[@1, @2, @3], @[@4, @5, @6], @[@7, @8, @9]];

// 访问2D NSArray中的元素
NSNumber *element = array1[1][2]; // 获取第二行第三列的元素
NSLog(@"%@", element);

// 输出结果:6
  1. 使用NSMutableArray创建2D数组:
代码语言:objective-c
复制
// 创建一个2D NSMutableArray
NSMutableArray *array2 = [NSMutableArray arrayWithObjects:
                          [NSMutableArray arrayWithObjects:@1, @2, @3, nil],
                          [NSMutableArray arrayWithObjects:@4, @5, @6, nil],
                          [NSMutableArray arrayWithObjects:@7, @8, @9, nil],
                          nil];

// 修改2D NSMutableArray中的元素
array2[1][2] = @10; // 修改第二行第三列的元素

// 访问修改后的元素
NSNumber *modifiedElement = array2[1][2];
NSLog(@"%@", modifiedElement);

// 输出结果:10

这样就可以在目标C中创建2D NSArray或NSMutableArray。2D数组可以用于存储和操作二维数据,例如游戏地图、图像处理等场景。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实际开发的深浅拷贝问题 - 解答

string地址不一样了,目标string 类型和 string1 && string3 类型不一样,说明如果类型变了 ==> 会产生一个新对象 NSArry copy测试 NSArray *array...= @[@"1",@"2"]; NSArray *array1 = array.copy; NSArray *array2 = array.mutableCopy; NSMutableArray...,用copy,是浅拷贝,不会生成新的对象 目标对象如果是不可变的,用mutableCopy,对改变其类型,类型改变,会生成新的对象 目标对象如果是可变的,用copy,等于改变其类型,会生成新的对象 目标对象如果是可变的...*) $6 = 0x00006000000072c0 这里并没有进行真正的深拷贝!...alloc] initWithArray:someArray copyItems:YES];就能实现真正的深拷贝 如果数组的层数多级,例如demo的 - [ [model,model] ],必须用NSArray

70840
  • iOS的浅复制与深复制

    对他们进行copy与mutableCopy的含义是: 对于不可变非集合对象(NSString),copy操作是浅复制,只会复制指针,mutableCopy操作是深复制, 对于可变非集合对象(NSMutableString...先说说简单的浅复制与深复制,其实与非集合对象差不多: 对于不可变集合对象(NSArray),copy操作是浅复制,只会复制指针,mutableCopy操作是深复制, 对于可变集合对象(NSMutableArray...代码来说就是: NSArray *array = @[@[@"a", @"b"], @[@"c", @"d"]; NSArray *copyArray = [array copy];// 浅复制 NSMutableArray...*mCopyArray = [array mutableCopy];// 单层深复制 NSMutableArray *array = [NSMutableArray arrayWithObjects...:[NSMutableString stringWithString:@"a"],@"b",@"c",nil]; NSArray *copyArray = [array copy];// 单层深复制,返回不可变对象

    52220

    iOS - 关于 KVC 的一些总结

    ② 数组运算符:根据运算符的条件,将符合条件的对象以一个NSArray实例返回。 ③ 嵌套运算符:处理集合对象嵌套其他集合对象的情况,并根据运算符返回一个NSArrayNSSet实例。...嵌套运算符 处理集合对象嵌套其他集合对象的情况,并根据运算符返回一个NSArrayNSSet实例。...NSMutableArrayNSMutableSet对象,将集合的array和set添加进去再进行操作。...注意: 因为Swift的所有属性都是对象,所以这里仅适用于Objective-C属性。 当进行赋值setValue:forKey:时,如果key的数据类型是非对象类型,则value就禁止传nil。...如果找到就返回一个代理对象,该代理对象将接收所有NSMutableArray消息,通常是NSMutableArray其子类。否则执行④。

    1.9K10

    iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)

    本文实验Demo传送门:DictToModelDemo 前言:将后台JSON数据的字典转成本地的模型,我们一般选用部分优秀的第三方框架,SBJSON、JSONKit、MJExtension、YYModel.../图标 @property (nonatomic, copy) NSString *icon; //标题 @property (nonatomic, copy) NSString *title; //目标控制器...*dictArr = [NSArray arrayWithContentsOfFile:path]; //字典转模型 NSMutableArray *modelArr = [NSMutableArray...获得属性名称 */ const char *propertyName_C = property_getName(property); /* 将 C 字符串转化成 OC...也是字典,把数组的字典转换成模型. // 判断值是否是数组 if ([value isKindOfClass:[NSArray class]]) {

    2.5K10

    iOS 斗地主发牌排序

    虽说思路就是这样的,但我们不知道他们产品规定的牌对应的数字,这个就不讲了,我们来讲下第二种方案: 创建一个数组allArr,allArr数组里存下所有牌的排序,从大小王到黑红梅方3,然后根据后台返的数组...} }]; arc4random_uniform()的原型是arc4random_uniform(uint32_t __upper_bound),效果是随机取出 0-填入值之间的无符号整数,填入...2,则结果为01。...随机打乱2.png 接下来我们随便构造一个范围,取出混合后的54张牌的这个范围内的17张牌: NSRange range = NSMakeRange(10, 17); NSArray...*resultArr = [NSMutableArray arrayWithArray:allPokerArr];这句代码构造最终排序后的牌,也因为遍历过程不能操作(改变)遍历的数组而写。

    1.2K60

    Objective-CNSArray类的解读

    Objective-CNSArray类的解读     NSArray数组类是Objective-C语言中常用的也是重要的一个类,除了开发中常用到的一些基础功能,NSArray及其相关类还封装了许多更加强大的功能...:(NSUInteger)index; //初始化方法 - (instancetype)init; //通过C语言风格的数组创建NSArray对象 需要注意,C数组需要为Objective对象,cnt...+ (instancetype)array; //通过一个元素创建数组对象 + (instancetype)arrayWithObject:(ObjectType)anObject; //通过C数组创建数组对象...:(ObjectType __unsafe_unretained [])objects; NSMutableArray属性与方法: //向数组追加一个元素 - (void)addObject:(ObjectType... *)arrayWithContentsOfFile:(NSString *)path; //通过url创建数组 + (nullable NSMutableArray<ObjectType

    1.3K20

    Objective-C的集合类

    下面详细的介绍Objective-C的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java的集合类去学习...在Objective-C的集合类主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary...NSArray也是OC的一个对象,使用NSArray也需要进行实例化,前面的博客在类的初始化中提到了便利初始化函数和便利构造器,在NSArray也少不了这两样东西我们可以通过NSArray的便利初始化函数或者便利构造器进行...            NSArray的容量是固定的,而NSMutableArray的容量是可变的,我们可以在NSMutableArray实例化的时候先初始化一个容量,不过这个容量不是固定的,不够的时候会自动增加...NSMutableArrayNSArray的子类,是对NSArray的一个扩充。

    1.1K70

    NSCharacterSet类在分割字符串的应用

    ; // 两个字符串被字符分割得到两个数组 NSArray * arr1 = [str1 componentsSeparatedByCharactersInSet:set]; NSArray...* arr2 = [str2 componentsSeparatedByCharactersInSet:set]; // 创建可变数组 用于之后的移除操作 NSMutableArray * array1...= [NSMutableArray arrayWithArray:arr1]; NSMutableArray * array2 = [NSMutableArray arrayWithArray:arr2...利用这个类,可以很方便地将含有各种字符(:“,”“?”“!”。。。。)的字符串分割开来。...这里的字符串分割要用到一个方法componetsSeparatedByCharactersInSet,分割后得到的是一个数组,此时的数组可能会有分割后的“”,还要将这些字符从数组移除,此时需要用一个可变数组来接收这个数组

    1.2K20

    iOS开发之__NSArray0、__NSArrayI、__NSArrayM和__NSPlaceholderArray

    Class Clusters 首先说一下Class Clusters(类簇)是抽象工厂模式在iOS下的一种实现,iOSNSString、NSArray、NSDictionary以及NSNumber都运作在这一模式下...NSArray的类簇 在《effective objective-c 2.0编写高质量iOS与OS X代码的52个有效方法》这样写道:系统框架中有许多类簇,大部分collection类都是类族。...例如NSArray与其可变版本NSMutableArray。这样看来实际上有两个抽象基类,一个用于不可变数组,一个用于可变数组。尽管具备公共接口的类有两个,但任然可以合起来算一个类族。...不过,任然有方法判断出某个实例所属的类是否位于类族。...所以总结一下就是:__NSArrayI是NSArray的真正类型 ,__NSArrayM是NSMutableArray真正类型。

    3K80

    @property (copy) NSMutableArray *array; 这个写法会出什么问题

    原理: 通过copy方法可以创建可变对象不可变对象的不可变副本,对于不可变副本,其对象的值不可以改变。...通过mutableCopy方法可以创建可变对象不可变对象的可变副本,对于可变副本其对象是可变的。 复制分为浅复制和深复制两种:浅复制只是复制对象的引用,并没有复制对象的具体内容。...对于复制Foundation的对象,默认并不是深复制,例如copy NSMutableArray对象是浅复制,只是对其引用进行复制;而copy NSMutableString对象是深复制,对原来引用的对象的具体内容也进行了复制...- { _mArray = mArray.copy; } 你的mArray属性就成了NSArrayNSMutableArray只能用strong修饰,不存在有copy修饰的情况...,写了就成NSArray了。

    1.3K60

    OC学习13——Foundation框架的集合

    一、数组(NSArrayNSMutableArray) 1、NSArray代表元素有序、可重复的一个集合,集合每个元素都有其对应的顺序索引。...来创建NSArray   参考NSArray类的文档,可以看到NSArray集合的方法大致包含如下几类: 查询集合元素在NSArray的索引,即下标 根据索引值取出NSArray集合的元素 对集合元素整体调用方法...对象 19 NSArray* array1 = [NSArray arrayWithObjects: 20 @"Objective-C" , @"C" , @"C...代表集合不可变元素,一旦NSArray创建成功,程序就不能向集合添加新的元素,不能删除集合已有的元素,也不能替换集合元素。...NSArray有一个子类NSMutableArrayNSMutableArray代表集合元素可变的集合,因此,程序可以向集合添加新元素,可以删除集合已有的元素。

    2.1K80

    两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载

    4 MVC简单介绍和类前缀 模型 : 数据 视图 : 负责显示 控制器 : 处理逻辑,跳转界面 类前缀苹果推荐使用三个三个以上字母,防止重名 5 应用管理-两种加载xib的方式 从 NSBundle...MVCV负责显示,C只需要拿到这个视图,至于这个视图是怎么来的,C不需要关心. 7 应用管理-九宫格布局 // 定义格子的宽和高 NSInteger appW = 100;...: dict[@"name"] = @"Jack";NSString *name = dict[@"name"];``` ##8.2 字典转模型的流程 !...NSArray * array = [NSArray arrayWithContentsOfURL:plistUrl]; NSMutableArray * arrayM = [NSMutableArray...- 根据view提供的方法添加到视图上(c不关心view具体是如何创建的),并且,把解析的模型数据复制给view.h里面用来接收模型类型的属性

    85430

    【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    NSMutableArray 可变数组 (1) NSMutableArray 简介 NSMutableArray 简介 :  -- NSMutableArrayNSArray 对比 : NSArray...谓词简介 (1) 谓词简介 谓词简介 : 个人感觉 谓词比较像 Java 的正则表达式; -- 作用 : 谓词用于定义 逻辑条件, 用于 搜索 过滤内存的数据, 尤其是 搜索过滤集合的数据;...NSArray NSMutableArray 数组集合 Objective-C 集合概述 :  -- NSArray : 有序, 可重复集合; -- NSSet : 无序, 不可重复集合; -...NSMutableArray 可变数组 (1) NSMutableArray 简介 NSMutableArray 简介 :  -- NSMutableArrayNSArray 对比 : NSArray...谓词简介 (1) 谓词简介 谓词简介 : 个人感觉 谓词比较像 Java 的正则表达式; -- 作用 : 谓词用于定义 逻辑条件, 用于 搜索 过滤内存的数据, 尤其是 搜索过滤集合的数据;

    1.3K20

    ReactiveCocoa,最受欢迎的iOS函数响应式编程库(2.5版),没有之一!

    ReactiveCocoa通常简称为RAC.RAC,不再使用变量,而是使用信号(以 RACSignal为代表)来捕捉现在和未来的数据视图的值....这是一些使用RAC更具有优势的应用场景: 处理异步事件驱动的数据源....依赖关系通常出现在网络请求,如后一个请求应该等前一个请求完成后再创建,等等: [client logInWithSuccess:^{ [client loadCachedMessagesWithSuccess...使用独立数据的并行工作,然后最终将他们合并到一个结果,在Cocoa是很琐碎的,并且常常包含许多同步代码: __block NSArray *databaseObjects; __block NSArray...更高层级的排序函数,比如 map(映射), filter(过滤器), fold(折叠)/reduce(减少),在Foundation 严重缺失; 这导致必须编写类似于下面的循环代码: NSMutableArray

    1.2K91

    IOS 某电商App签名算法解析(二) Frida RPC调用

    一、目标 Android下用frida来做rpc调用计算签名,我们已经玩的很熟练了。 今天介绍在IOS下的玩法。...= gScript.exports.callsign(body,client,clientVersion,functionId,openudid) return res 处于演示目的,我们这里创建一个...实际应用的时候可以创建个POST接口,把参数传进来。 rpc.exports = { callsign : callSignFun }; 脚本里面暴露一个callsign函数供Python调用。...参数类型确认 上篇文章我们已经定位到了 +XXSignService getSignWithDic:keys:, 他有两个参数,只需要在 IDA 查看下这个函数被谁调用了,就可以看到入参的类型了。...我们试试 NSMutableArray var param_Key_Array = ObjC.classes.NSMutableArray.arrayWithObject_(sBody); param_Key_Array.addObject

    2.3K30
    领券