我有一个 Objective-C View Controller 类,我试图从中调用直接 C(不是 Objective-C)函数。我想通过引用传入一个字符串变量,在 C 函数中设置它的值,然后回到我的 View Controller 中,我想将它转换为一个普通的 NSString 对象。
由于无法直接传入NSString对象,我需要创建并传入一个char
指针或char
数组,然后将其转换为函数返回后的 NSString 对象。
谁能给我指出一个简单的代码示例来说明如何执行此操作?我不擅长 Objective-C 或常规 C,因此操作字符串对我来说非常困难。
最佳答案
也许是这样的
bool doSomethingToMyString(const char* originalString, char *buffer, unsigned int size)
{
bool result = 0;
if (size >= size_needed)
{
sprintf(buffer, "The new content for the string, maybe dependent on the originalString.");
result = 1;
}
return result;
}
...
- (void) objectiveCFunctionOrSomething:(NSString *)originalString
{
char myString[SIZE];
if (doSomethingToMyString([originalString UTF8String], myString, SIZE))
{
NSString *myNSString = [NSString stringWithCString:myString encoding:NSUTF8StringEncoding];
// alright!
}
}
或者,您知道,类似的东西。
关于iphone - 如何将字符串从 Objective-C 传递给 C 函数并取回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942513/