gpt4 book ai didi

objective-c - Objective C中如何将字符串转换为字符

转载 作者:行者123 更新时间:2023-12-03 04:51:59 26 4
gpt4 key购买 nike

如何在 Objective C 中将字符串转换为字符。以下是我正在使用的代码,

NSString *param = [paramsToPass objectAtIndex:0]
[class gseInit:&getData];
[class gseCom:param];
NSLog(@"%@", param);

在第 3 行,我收到以下警告,

Incompatible pointer types sending 'NSString*' to parameter of type 'char*'.

那么如何克服上述警告。提前致谢。

最佳答案

您可能想要获取 NSString 的 UTF-8 表示形式:

NSString *param = [paramsToPass objectAtIndex:0]
[class gseInit:&getData];
[class gseCom:[param UTF8String]];
NSLog(@"%@", param);

但是,只有当 gseCom: 更新字符串时,这才有效(即参数是 const char *)。真正了解这一点的唯一方法是阅读该类的文档(您没有提及该类是什么,所以我无法提供帮助)。

如果它没有更新参数,并且 gseCom 被错误地定义为接受 char *,而不是 const char *,那么您只需将其转换为正确的类型即可:

[class gseCom:(char *)[param UTF8String]];

但是,如果它正在更新 param,那么您将需要为其提供一个缓冲区来使用:

[class gseInit:&getData];

NSString *param = [paramsToPass objectAtIndex:0]

// Create a buffer containing the c-string (in UTF-8)
#define BUFSIZ 256 // This size depends on what the string could hold
char cparam[BUFSIZ];
[param getCString:cparam maxLength:BUFSIZ encoding:NSUTF8Encoding];

// Let the method update the string
NSLog(@"before %s", cparam);
[class gseCom:cparam];
NSLog(@"after %s", cparam);

关于objective-c - Objective C中如何将字符串转换为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211311/

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