2014-06-09 22 views
0

我有一個循環,通過它的HTML標識網頁的元素並提取我需要的部分。我想要構建一個數組或者(非常)長的提取文本字符串,以便以後使用。將_CFNSString傳遞到NSString中

提取使用來自GitHub的TFHpple。問題似乎在於提取的文本是_CFNSString,而這些不允許我將它們轉換爲NSString或NSMutuableArray。

我正在使用的代碼是:

NSArray *webNodes = [webParser searchWithXPathQuery:tutorialsXpathQueryString]; 
NSString *extractedText = [[NSString alloc] init]; 

NSMutableArray *extractedArray = [[NSMutableArray alloc] initWithCapacity:0]; 
for (TFHppleElement *element in webNodes) { 
    Extraction *extraction = [[Extraction alloc] init]; 
    [extractedArray addObject:extraction]; 

    extraction.title = [[element firstChild] content]; 
    extractedText = extraction.title; 

    NSLog(@"\n\nTitle: %@", extractedText); 
} 

的NSLog的在這一點上顯示我extractedText着每個循環之後,我,打破了代碼顯示extractedText是一個_CFNSString。

如果我嘗試添加

text = [text StringByAppendingString extractedText]; 

(與「文」是在循環之前初始化一個NSString)作爲循環的最後一步,我得到一個空值。如果我嘗試將文本或extract.title直接添加到數組中,它也是一樣。

我發現這個問題Convert NSCFString to NSString但轉換似乎是以另一種方式(NSString到CFNSString)。當我添加等效代碼時,出現橋接錯誤,代碼無法運行。

如何收集extract.title中的數據以構建可以稍後使用的字符串或數組?

+0

什麼是'text'擺在首位?問題可能是'text'在那個點上是'nil',產生'nil'結果(記住objc中允許'nil'的消息) – Alladinian

回答

0

你說你只想要一個文本。

得到它的一行代碼爲陣:

NSArray *extractedArray = [webNodes valueForKeyPath:@"firstChild.content"]; 

對於字符串:

NSString *extractedText = [webNodes valueForKeyPath:@"firstChild.content"] componentsJoinedByString:@" "]; 
+0

完美,歡呼聲。 – user2903240

相關問題