好的,开始我是初学者,所以我还在学习。 所以我有世界城市的这个文件。它看起来像这样:
City,Country,Latitude,Longitude
Aberdeen, Scotland,57.15,-2.15
Adelaide, Australia,-34.91666667,138.6
Algiers, Algeria,36.83333333,3
Amsterdam, Netherlands,52.36666667,4.883333333
Ankara, Turkey,39.91666667,32.91666667
AsunciÛn, Paraguay,-25.25,-57.66666667
Athens, Greece,37.96666667,23.71666667
Auckland, New Zealand,-36.86666667,174.75
Bangkok, Thailand,13.75,100.5
我必须把所有这些文件放到单独的并行数组中,我想用纬度和经度来计算距离,这没什么大不了的,我想把它们放到C风格的数组中我不知道如何在目标C中这样做。我知道你可以使用NSArray,但这似乎对我没有用。我怎么能在Objective c中做到这一点。我已经通过
将文件读入NSString anotherLine = [NSString stringWithContentsOfFile:docDirectory encoding:NSStringEncodingConversionAllowLossy error:nil];
// docDirectory是我的文件
的地方如何将此NSString放入4个独立的阵列(城市[max],国家[max],纬度[max],经度[max])。 而且,我仍然是目标c的初学者,我确实知道c ++上的一些东西,所以我试图尽可能接近c。
答案 0 :(得分:-1)
你可以试试这个:
NSMutableArray* cities = [NSMutableArray array];
NSMutableArray* countries = [NSMutableArray array];
NSMutableArray* latitude = [NSMutableArray array];
NSMutableArray* longitude = [NSMutableArray array];
// read everything from text
NSString* fileContents =
[NSString stringWithContentsOfFile:docDirectory encoding:NSStringEncodingConversionAllowLossy error:nil];
// first, separate by new line
NSArray* allLinedStrings =
[fileContents componentsSeparatedByCharactersInSet:
[NSCharacterSet newlineCharacterSet]];
[allLinedStrings enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (idx > 0) //Ignore first line column header
{
NSArray* columnsFile = [((NSString*)obj) componentsSeparatedByString:@","];
[cities addObject:[columnsFile objectAtIndex:0]];
[countries addObject:[columnsFile objectAtIndex:1]];
[latitude addObject:[columnsFile objectAtIndex:2]];
[longitude addObject:[columnsFile objectAtIndex:3]];
}
}];