测试以了解Objective-C Vs指针

New*_*bee 0 iphone objective-c ios

我编写了一个测试代码来理解Objective C vs C指针.这是代码..

例如:

    NSMutableArray *array = [[NSMutableArray alloc] init];
    NSMutableArray *sec_mut;
    if (array) {
        [array addObject:@"My"];
         [array addObject:@"name"];
         [array addObject:@"is"];
         [array addObject:@"BoB"];

            sec_mut = [[NSMutableArray alloc] init];

            if (sec_mut) {
                for (id obj in array) { // Is it allocating new object and adding or only points to already existing memory (just adding address)?
                    [sec_mut addObject:obj]; 
                }
            }
    }

    [array removeObjectAtIndex:0];

    for (id obj in sec_mut) {
        NSLog(@"str is %@\n",obj);
    }
Run Code Online (Sandbox Code Playgroud)

输出:str是我的str是名称str是str是BoB

即使我在索引零处删除了对象,所有4个对象都在新数组中正确显示,因此它不仅指向并且具有自己的对象,我是对的吗?还是悬挂指针?

感谢名单

小智 6

将对象插入Cocoa集合时,通常不会复制对象,只保留对象.(例如,是的,只有指针用于引用对象.)