gpt4 book ai didi

c++ - NSMutableArray insertObject :(id) atIndex:int inserting a void ptr

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:17 24 4
gpt4 key购买 nike

在我的应用程序中,我混合使用了 C++ 和 Objective C++ 代码,在一个地方,我需要将 C++ 类对象的指针插入到 NSMutableArray ,但是我得到 NSINvalidArgument 异常,谁能指导我,我如何插入指向 NSMuatableArray 的空指针

这是我试过的,

pArray = [[NSMutableArray alloc]initWithCapacity:myList.size()];

Node *node = myList.getHead();

int idx =0;
void *ptr = nil;
while ( node ) {
[pCTArray insertObject:(NSObject *)node atIndex:idx];
node = node->getNext();
idx++;

}

有没有其他方法可以将它插入到MutableArray中,我所做的可能的解决方法是:将商店索引链接到此

[myArray insertObject:[NSNumber numberWithInt:idx] atIndex:idx];

我将在所有 NSTable/NSOutliveVIew 委托(delegate)方法中使用这个数组,我需要选择索引并从链接列表中获取元素,但担心性能问题,因为需要调用太多函数,

这是 Cocoa 中的任何错误还是我做错了什么?

最佳答案

NSArrays 期望持有符合 NSObject 协议(protocol)的 objective-C 对象。如果你想包装一个指针,使用 NSValue:

[myArray insertObject:[NSValue valueWithPointer:node] atIndex:idx];

您手动负责该指针的所有内存管理,因为 Objective-C 无法以通常的方式对它进行引用计数。

关于c++ - NSMutableArray insertObject :(id) atIndex:int inserting a void ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com