Хорошо, прежде всего, я использую GNUStep как способ изучения Objective-C, поэтому могут быть некоторые различия между GNU и реализацией Apple. Это сказанное, это не должно затронуть мой вопрос.
В любом случае, чтобы понять мою головоломку, пожалуйста, разберите следующий код на ваши визуальные сосуды:
#import <Cocoa/Cocoa.h>
int main()
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSEnumerator * LineEnumerator = [[NSArray arrayWithObjects: @"Jim 1", @"Steve 3", nil] objectEnumerator];
NSString * s;
while((s = [LineEnumerator nextObject]))
{
NSArray * parts = [s componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", parts);
}
[pool drain];
return NO;
}
И следующий вывод:
2010-10-07 10:03:50.809 a.out[24512] (Jim, "", "", "", "", 1)
2010-10-07 10:03:50.812 a.out[24512] (Steve, "", "", 3)
Мой ожидаемый результат будет:
2010-10-07 10:03:50.809 a.out[24512] (Jim, 1)
2010-10-07 10:03:50.812 a.out[24512] (Steve, 3)
Но кажется, что componentSeparatedByCharactersInSet - единственный метод, который приближается к тому, что я ищу (кстати, я хочу быть готовым к любой смеси пробелов, табуляции или других пробельных символов). Есть ли простой способ сделать это со стандартными библиотеками без написания нового метода?