手游电脑版,重铸天宫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; }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
网友评论