如何从Objective-C将字符串传递给C函数并获取值?

Mus*_*sis 1 c iphone objective-c

我有一个Objective-C视图控制器类,我试图从中调用直接C(非Objective-C)函数.我想通过引用传入一个字符串变量,在C函数中设置它的值,然后在我的视图控制器中我想将它转换为普通的NSString对象.

由于我不能直接传入NSString对象,我需要创建并传入char指针或char数组,然后在函数返回后将其转换为NSString对象.

任何人都可以指向一个简单的代码示例,说明如何执行此操作?我在Objective-C或常规C中都不强,所以操纵字符串对我来说非常困难.

fil*_*ipe 6

也许这样的事情

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!
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,你知道,这是什么意思.