Hea*_*ers 10 c printf objective-c
我想获得一个NSString内置的成员范围+[NSString stringWithFormat:].解析objective-c格式字符串的最佳方法是什么?因为,我不能只使用C格式的字符串解析器%@.我还需要确保它支持的格式排序:%1$d,%2$@,等.
例如,使用构建的字符串[NSString stringWithFormat:@"foo %2$@ bar %1$@", @"Heath", @"Borders"],我理想地喜欢以下内容NSArray:@[NSMakeRange(15, 5), NSMakeRange(4, 6)].第一个数组对象对应于格式字符串中的第一个数据元素,第二个数组元素对应于第二个数据元素等.
在这种情况下,API会看起来像+ (NSString *) stringWithFormatRanges:(NSArray **)outFormatRanges withFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);它会返回一个NSString只是喜欢+[NSString stringWithFormat:],但它也将返回一个NSArray与NSRange各种格式的数据元素的秒.
- 编辑 -
鉴于这个问题已经有3年了,我现在对这个C-only实现感到满意.
几年前我对此进行了研究.如果我理解你的问题,就没有简单的方法可以从C或Cocoa格式字符串的格式字符串中获取AST.
我写了NSXMLElement + elementWithXMLFormat,它允许非转义插入NSXMLElements到一个带有特殊%%%@格式代码的格式字符串,这需要扩展Cocoa的格式.我的技术可能对您有所帮助:
我提取和NUL分隔格式代码,传统运行然后重新组装.
| 归档时间: |
|
| 查看次数: |
772 次 |
| 最近记录: |