2011-07-28 43 views
0

我想用下面的代碼行填充標題和字幕使用mapkit。 textItems數組包含兩個字符串。從NSArray到註釋,字符串的字符串

NSArray *textItems = [searchString componentsSeparatedByString:@","]; 

addAnnotation = 
[[AddressAnnotation alloc] initWithCoordinate:location 
             mTitle:[[textItems objectAtIndex:0] stringValue] 
            mSubTitle:[[textItems objectAtIndex:1] stringValue]]; 

該應用在到達'addAnnotation'時停止。

如果我將mTitle:[[textItems objectAtIndex:0] stringValue]更改爲mTitle:@"test"即它工作正常。當我調試時,我可以看到textItems數組中的數據存在。

任何想法?

謝謝。

+0

nslog textitems數組和objectatindex –

回答

1

componentsSeparatedByString方法返回一個NSString對象的數組。

要調用stringValue對這些對象,但stringValue適用於NSNumber對象 - 不NSString,所以你一定要得到一個「無法識別的選擇」的錯誤。

刪除通話stringValue

addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:location 
    mTitle:[textItems objectAtIndex:0] 
    mSubTitle:[textItems objectAtIndex:1]]; 

但是,它仍然是一個好主意訪問陣列中的這些索引之前檢查的次數和使用默認值,如果數組只返回0或1對象。

+0

@安妮謝謝 - 這是問題所在。應該檢查NSString類參考 - 它說明了一切。 – Lysgaard

1

我會在您發佈的第一行和第二行之間設置一個斷點。到達那裏後,進入控制檯並輸入「po textItems」和「po [textItems count]」。他們將分別打印陣列和陣列中的對象數量。至少這是一個檢查,以確保您獲得您期望的數組中的對象數量。