IOS 开发之 NSMutableArray与NSArray 的区别
发布时间 - 2026-01-11 03:05:03 点击率:次IOS 开发之 NSMutableArray与NSArray 的区别

首先,来看下2者的区别:
NSArray and its subclass NSMutableArray manage collections of objects called arrays. NSArray creates static arrays, and NSMutableArray creates dynamic arrays.
NSMutableArray是NSArray的子类,NSArray建立静态数组,而NSMutableArray则是动态数组.换句话说,NSArray建立之后不可修改,而NSMutableArray则可以修改.
由于在ObjC中,简单的看下函数addObject,会发现数组的元素是id类型,也就是说是指针.
- (void)addObject:(id)anObject
如此一来数组里就不能压入NSUInteger,BOOL之类的非指针型数据了,要命吧..
那要压入这些内容怎么办呢?对,类型转换,ObjC提供了NSNumber来给大家转换用,NSNumber本身是个指针类型变量.
Inherits from NSValue : NSObject
来个简单的转换例子:
NSUInteger count = 1; NSNumber *j = [NSNumber numberWithInt:count]; [ary addObject:j];
还算明了吧,就是用到这个值的时候又要转换一次,...
昨天刚好又用到数组的乱序,在网上找了个Sample修改了下,代码如下:
#pragma
mark -
#pragma
mark (NSMutableArray *)randArray:(NSMutableArray *)ary
-
(NSMutableArray *)randArray:(NSMutableArray *)ary{
NSMutableArray
*tmpAry = [NSMutableArray arrayWithArray:ary];
NSUInteger
count = [ary count];
for
(NSUInteger i = 0; i < count; ++i) {
int
nElements = count - i;
//
Seed the random number generator
srandom(time(NULL));
int
n = (random() % nElements) + i;
[tmpAry
exchangeObjectAtIndex:i withObjectAtIndex:n];
}
return
tmpAry;
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# IOS
# 开发NSMutableArray与NSArray
# 的区别
# NSMutableArray与NSArray
# 的比较
# iOS利用NSMutableAttributedString实现富文本的方法小结
# iOS 对NSMutableArray进行排序和过滤的实例
# 浅谈iOS中几个常用协议 NSCopying/NSMutableCopying
# NSMutable 对象的坑解决分析
# 是个
# 子类
# 如有
# 则是
# 希望能
# 又要
# 找了
# 就不能
# 还算
# 来个
# 谢谢大家
# 则可
# 疑问请
# 好又
# 在网上
# 组里
# 昨天
# 来给大家
# static
# return
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
微信小程序 require机制详解及实例代码
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Java遍历集合的三种方式
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Laravel如何使用模型观察者?(Observer代码示例)
中国移动官方网站首页入口 中国移动官网网页登录
5种Android数据存储方式汇总
如何快速查询网站的真实建站时间?
如何用狗爹虚拟主机快速搭建网站?
如何选择PHP开源工具快速搭建网站?
Laravel如何记录自定义日志?(Log频道配置)
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
大型企业网站制作流程,做网站需要注册公司吗?
Laravel如何处理和验证JSON类型的数据库字段
LinuxShell函数封装方法_脚本复用设计思路【教程】
微信小程序 wx.uploadFile无法上传解决办法
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何撰写建站申请书?关键要点有哪些?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
如何确保FTP站点访问权限与数据传输安全?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
android nfc常用标签读取总结
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何快速搭建FTP站点实现文件共享?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
利用JavaScript实现拖拽改变元素大小
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
电商网站制作价格怎么算,网上拍卖流程以及规则?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Python高阶函数应用_函数作为参数说明【指导】
如何在建站之星绑定自定义域名?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
下一篇:如何在Linux中部署高可用架构
下一篇:如何在Linux中部署高可用架构

