IOS 开发之 NSMutableArray与NSArray 的区别

 更新时间:2017年09月03日 14:19:29   投稿:lqh  
这篇文章主要介绍了IOS 开发之 NSMutableArray与NSArray 的区别的相关资料,希望通过本文能掌握这部分内容,需要的朋友可以参考下

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 设置状态栏的背景颜色方法

    iOS 设置状态栏的背景颜色方法

    下面小编就为大家带来一篇iOS 设置状态栏的背景颜色方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • IOS React等Title不显示问题解决办法

    IOS React等Title不显示问题解决办法

    这篇文章主要介绍了IOS React等Title不显示问题解决办法的相关资料,需要的朋友可以参考下
    2017-02-02
  • iOS中如何获取某个视图的截图详析

    iOS中如何获取某个视图的截图详析

    这篇文章主要给大家介绍了关于在iOS中如何获取某个视图的截图的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Swift 访问权限的资料整理

    Swift 访问权限的资料整理

    这篇文章主要介绍了Swift 访问权限的资料整理的相关资料,希望通过本文大家能掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • iOS Gif图片展示N种方式(原生+第三方)

    iOS Gif图片展示N种方式(原生+第三方)

    这篇文章主要介绍了iOS Gif图片展示N种方式,包括原生、第三方方式展示,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • iOS开发中UITabBarController的使用示例

    iOS开发中UITabBarController的使用示例

    这篇文章主要介绍了iOS开发中UITabBarController的使用示例,代码基于Objective-C进行演示,需要的朋友可以参考下
    2015-09-09
  • iOS仿擦玻璃效果的实现方法

    iOS仿擦玻璃效果的实现方法

    最近在网上看到一个博客分享的这个效果很不错,就拿下来看看,结果看了好几遍也没完全看懂,再结合自己之前学的东西感觉不用这么复杂也能实现同样的效果,于是就开始动手了。现在将实现的步骤和示例代码分享给大家,有需要的朋友们可以参考借鉴。
    2016-10-10
  • IOS 圆球沿着椭圆轨迹做动画

    IOS 圆球沿着椭圆轨迹做动画

    这篇文章主要介绍了IOS 圆球沿着椭圆轨迹做动画的相关资料,需要的朋友可以参考下
    2016-09-09
  • c/c++堆栈分布及其设置方法

    c/c++堆栈分布及其设置方法

    这篇文章主要介绍了c/c++堆栈分布及其设置方法,需要的朋友可以参考下
    2014-01-01
  • iOS的XMPPFramework简单介绍(实现及时通信)

    iOS的XMPPFramework简单介绍(实现及时通信)

    这篇文章主要介绍了iOS的XMPPFramework简单介绍(实现及时通信),实现了基于XMPP协议通信的开发,有需要的朋友可以了解一下。
    2016-11-11

最新评论