黑马程序员技术交流社区
标题:
关于NSArray的问题,求解答
[打印本页]
作者:
!陈超
时间:
2015-4-28 21:47
标题:
关于NSArray的问题,求解答
/*
看Objective-C里面有
NSArray 是不可变数组,数组中包含的对象是可以改变的,但是数组对象本身是不会改变的
是说 NSArray 是不可变数组,但是元素是可以改变的,就是对象的指向改变?
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *string = @"opp : ack : bork : greeble : ponies";
NSArray *array = [string componentsSeparatedByString:@":"];
NSLog(@"%@", array[2]); // 这里可以打印里面的字符串
//array[2] = @"cc"; // 提示错误 Expected method to write array element not found on object of type 'NSArray *'
// 赋值不成。可是 NSArray 数组集合中存储的只能是 OC 对象,所以我想看看该元素对象是什么类型
Class c = [array[2] class];
NSLog(@"%@ , %@", c, [string class]); // 这里打印的两个类型不同 __NSCFString , __NSCFConstantString
string = [array componentsJoinedByString:@"--"]; // array[2]不能修改就算了,可是这个NSString对象怎么可以修改了
NSLog(@"%@", string);
}
return 0;
}
// 所以到了最后我也没有弄到书里提到的内容的意思。求解答
复制代码
作者:
whqkgd5
时间:
2015-4-28 22:01
可变不可变指的是数组里存放元素数量的变化。
作者:
!陈超
时间:
2015-4-28 22:25
whqkgd5 发表于 2015-4-28 22:01
可变不可变指的是数组里存放元素数量的变化。
NSArray 对象创建了还可以修改吗? NSMutableArray 才可以吧
作者:
仰望的繁华
时间:
2015-4-28 22:31
简单点理解就是这样:
1. 不择手段,只求改变的话,两个其实都能改变。
2. 只不过mutable的,是在当前对象上直接改。
3. 没mutable的,是在别的地方改好了,重新赋值给当前对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2