当前位置: 移动技术网 > IT编程>移动开发>IOS > IOS 开发之 NSMutableArray与NSArray 的区别

IOS 开发之 NSMutableArray与NSArray 的区别

2019年07月24日  | 移动技术网IT编程  | 我要评论

手游电脑版,重铸天宫txt下载,叛逃粤语14

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 uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网