我有大約2000線,看起來像一個數據源如下:對象 - 問題設置陣列componentsSeperatedByString
6712,Anaktuvuk通行證機場,Anaktuvuk通行證,美國,AKP,PAKP,68.1336,-151.743 ,2103,-9,A
我感興趣的是這個字符串的第6部分,所以我想把它變成一個數組,然後我想檢查第6部分[5] 「PAKP」
代碼:
NSBundle *bundle = [NSBundle mainBundle];
NSString *airportsPath = [bundle pathForResource:@"airports" ofType:@"dat"];
NSData *data = [NSData dataWithContentsOfFile:airportsPath];
NSString *dataString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSArray *dataArray = [dataString componentsSeparatedByString:@"\n"];
NSRange locationOfAirport;
NSString *workingString = [[NSString alloc]initWithFormat:@""];
NSString *searchedAirport = [[NSString alloc]initWithFormat:@""];
NSString *airportData = [[NSString alloc]initWithFormat:@""];
int d;
for (d=0; d < [dataArray count]; d=d+1) {
workingString = [dataArray objectAtIndex:d];
testTextBox = workingString; //works correctly
NSArray *workingArray = [workingString componentsSeparatedByString:@","];
testTextBox2 = [workingArray objectAtIndex: 0]; //correctly displays the first section "6712"
testTextBox3 = [workingArray objectAtIndex:1] //throws exception index beyond bounds
locationOfAirport = [[workingArray objectAtIndex:5] rangeOfString:@"PAKP"];
}
問題是當workingArray填充時,它只填充單個對象(字符串的第一個組件「6712」)。如果我有它顯示workingString,它正確顯示整個字符串,但出於某種原因,它不正確使用逗號作出該數組。
我試過它沒有使用數據文件,它工作正常,所以問題來自我如何導入數據。
想法?
奇怪的問題。我知道它與你的問題無關,byt,你爲什麼要爲workingString,searchingAirport和airportData分配內存? – 2010-04-10 16:33:55
不是問題,但testTextBox3行在結尾處缺少分號。你確定這是正在運行的確切代碼嗎?如果你把NSLog(@「%@」,workingArray);在設置了workingArray之後,它顯示了什麼? – DyingCactus 2010-04-10 16:38:34
Pablo - 一旦我解決了這個問題,這些將被用於別的東西。 仙人掌 - testTextBox3在我的文章中只是一個錯字。這是何等的記錄:2010-04-10 11:28:34.675伴侶[16752:207]( 6712, 「Anaktuvuk通行證機場」, 「Anaktuvuk通行證」, 「美國」, AKP, PAKP, 「68.1336」, 「-151.743」, 2103, 「-9」, 「」, 一個 ) – Brodie 2010-04-10 17:30:20