a.H:
-(NSArray *) returnarray:(int) aa
{
unsigned char arry[1000]={"aa","vv","cc","cc","dd"......};
NSArray *tmpary=arry;
return tmpary;
}
交流电:
#include "a.H"
main (){
// how do I call returnarray function to get that array in main class
}
我需要在 main 中使用该数组,并且我需要在单独的类中保留该数组函数。
有人可以提供代码示例来执行此操作吗?
最佳答案
这些行:
unsigned char arry[1000]={"aa", "vv", "cc", "cc", "dd", ...};
NSArray *tmpary=arry;
应该改为:
unsigned char arry[1000]={"aa", "vv", "cc", "cc", "dd", ...};
NSMutableArray * tmpary = [[NSMutableArray alloc] initWithCapacity: 1000];
for (i = 0; i < 1000; i++)
{
[tmpary addObject: [NSString stringWithCString: arry[i] encoding:NSASCIIStringEncoding]];
}
这是因为 C 风格的数组(例如 int arr[10];
)与上面声明的实际 NSArray 对象不同。
事实上,除了文档中定义的可供您使用的方法之外,人们不知道 NSArray
到底是什么。这与 C 风格的数组形成对比,C 风格的数组保证只是为您准备的连续内存块,大到足以容纳您请求的元素数量。
关于objective-c - 如何将 C 风格的 char* 数组转换为 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708274/