use*_*109 1 objective-c utf-8 ios
我想从 NSString 获取 cString。
所以我们使用了 c?String?Using?Encoding:? 方法。
但是,返回值c?String?Using?Encoding:? 方法不保证。
(Apple 的文档:返回的 C 字符串保证仅在接收器被释放之前有效。)
所以 Apple 推荐 get?CString:?max?Length:?encoding: 方法。
我想将确切的长度传递给 maxLength。
示例 1)
NSString *tmp = @"???" // cString 9bytes
char *buffer = new tmp[9 + 1];
[tmp getCString:buffer maxLength:9+1 encoding:NSUTF8String?Encoding];
Run Code Online (Sandbox Code Playgroud)
例 2)
NSString *tmp = @"???123" // cString 12bytes
char *buffer = new tmp[12 + 1];
[tmp getCString:buffer maxLength:12+1 encoding:NSUTF8String?Encoding];
Run Code Online (Sandbox Code Playgroud)
有没有办法知道上面例子中 9 和 12 的长度?
// Add one because this doesn't include the NULL
NSUInteger maxLength = [string maximumLengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
991 次 |
最近记录: |