Rol*_*ien 7 macos cocoa objective-c
如果我有一个带有文本文件的NSString,如何获得一个NSString的NSArray,每个NSString包含一行文件.
在10.5中我这样做了:
NSArray* lines = [str componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];
Run Code Online (Sandbox Code Playgroud)
但这在10.4中不起作用,我的程序需要在10.4中工作.
同样,它需要使用\ r,\n和\ r \n行结尾.
e.J*_*mes 10
以下代码直接来自Apple关于段落和换行符的文档:
unsigned length = [string length];
unsigned paraStart = 0, paraEnd = 0, contentsEnd = 0;
NSMutableArray *array = [NSMutableArray array];
NSRange currentRange;
while (paraEnd < length)
{
[string getParagraphStart:¶Start end:¶End
contentsEnd:&contentsEnd forRange:NSMakeRange(paraEnd, 0)];
currentRange = NSMakeRange(paraStart, contentsEnd - paraStart);
[array addObject:[string substringWithRange:currentRange]];
}
Run Code Online (Sandbox Code Playgroud)
我不是100%肯定它是否适用于10.4
使用包含字符串中的所有行 enumerateLinesUsingBlock:
[yourString enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop) {
//line
}];
Run Code Online (Sandbox Code Playgroud)
宣言
Run Code Online (Sandbox Code Playgroud)- (void)enumerateLinesUsingBlock:(void (^)(NSString *line, BOOL *stop))block参数
block为枚举执行的块.该块有两个参数:
line枚举字符串的当前行.该行仅包含该行的内容,没有行终止符.
stop块的可用于通过设置*stop = YES来停止枚举的布尔值的引用; 它不应该触摸*否则停止.可用性可用的
OS 10.6和iOS 4.0以后.
| 归档时间: |
|
| 查看次数: |
11960 次 |
| 最近记录: |