捕获NSString的第一行

时间:2011-04-17 23:20:24

标签: iphone objective-c ios

如何从NSString对象中捕获第一行?

我目前正在将整个NSString对象分配给textView的标题,但只想分配字符串的第一行。我现在的代码是这样的:

self.textView.text = [[managedObject valueForKey:@"taskText"] description];

3 个答案:

答案 0 :(得分:7)

你想要

self.textView.text = [[[[managedObject valueForKey: @"taskText"] description] componentsSeparatedByString: @"\n"] objectAtIndex:0];

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html

答案 1 :(得分:6)

如果您的目标是iOS 4.0及更高版本,则可以使用-[NSString enumerateLinesUsingBlock:]

__block NSString *firstLine = nil;
NSString *wholeText = [[managedObject valueForKey:@"taskText"] description];
[wholeText enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {
    firstLine = [[line retain] autorelease];
    *stop = YES;
}];

self.textView.text = firstLine;

答案 2 :(得分:4)

另一种方法可能是最有效和最简单的方法:

NSString* str = [[managedObject valueForKey:@"taskText"] description]; self.textView.text = [str substringWithRange:[str lineRangeForRange:NSMakeRange(0, 0)]];