Ali*_*Ali 2 c objective-c char nsstring
我需要TE返回NSString为char *:
char *inboxPath (void)
{
NSURL * url = [[[[NSFileManager defaultManager]
URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"inbox.txt"];
return [[NSString stringWithFormat:@"%@", url] UTF8String];
}
Run Code Online (Sandbox Code Playgroud)
我得到:从结果类型为'char*'的函数返回'const char*'会丢弃限定符
为什么我得到这个以及如何解决它?
显然我不太了解C,有没有更简单的方法呢?
功能:
char* inboxPath (void);
Run Code Online (Sandbox Code Playgroud)
返回char*时-[NSString UTF8String]返回const char*.你要删除的限定符是const.要解决这个问题,你应该声明你的功能:
const char* inboxPath (void);
Run Code Online (Sandbox Code Playgroud)
变换immutable(const)数据是引入未定义行为的一种常见方式,因此您肯定希望避免丢弃const限定符.
如果需要可变char缓冲区,请复制返回的utf8字符串-[NSString UTF8String].