2011-05-24 102 views
0

下面的代碼做我需要它做的,但它看起來像一列火車殘骸,仍然在輸出周圍添加引號。我猜想可以在三到五行中得到相同的結果,並且無需引用。每次我這樣做,我真的必須刪除括號和空格嗎?請建議更正?你能簡化這個代碼嗎?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSUInteger row = [indexPath row]; 
    NSString *key = [terms objectAtIndex:row]; 
    NSArray *nameSection = [letters objectForKey:key]; 
    NSString *one = @"()"; 
    NSString *two = [NSString stringWithFormat:@"%@", nameSection]; 
    NSString *four = [two stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:one]]; 
    NSString *five = [four stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]]; 
    NSString * definition = [[NSString alloc] initWithFormat:@"%@", five]; 
    def.text = definition; 
    [definition release]; 
} 
+1

如果您爲我們描述了術語和信件集合以及您正在嘗試做什麼,這將會很有幫助。另外,看起來最後三行可以用「def.text = five」代替。 – 2011-05-24 18:32:49

+1

如果你用簡單的語言描述你想要完成的事情,這對我們(也許也是你自己)會有幫助。如果我不得不猜測它是這樣的:從字符串中剝離換行符,括號和引號。檢出NSMutableCharacterSet。 – kball 2011-05-24 18:34:13

+0

它從中拉出的plist在每個數組中都有一組數組和一個NSString。我知道,我知道,但我只知道如何從一組數組中填充TableView。所有這些都是將每個數組的NSString顯示到UITextView中。 – StreaminJA 2011-05-24 18:48:36

回答

0

編輯:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString *key = [terms objectAtIndex:indexPath.row]; 
    NSString *nameSection = [NSString stringWithFormat:@"%@", [letters objectForKey:key]]; 
    NSString *trimmedString = [nameSection stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()\"\n\r"]]; 

    def.text = trimmedString; 
} 

您可以添加到\"one使報價消失。而且definition行可以跳過,您可以改爲def.text = five;

+0

我試過「以前沒有成功,但是這看起來不錯,我會盡快嘗試它。」 – StreaminJA 2011-05-24 19:03:00

+0

我沒有測試過它,但如果stringByTrimmingCharactersInSet不起作用,那麼stringByReplacingOccurrencesOfString將與\「一起使用。 – vakio 2011-05-24 19:08:33

+0

它刪除了最後一個引號,但不是第一個...足夠我現在正在做的。感謝您的教育。 – StreaminJA 2011-05-25 04:30:14

0

這裏的一個第二遍:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSUInteger row = [indexPath row]; 
    NSString *key = [terms objectAtIndex:row]; 
    NSArray *nameSection = [letters objectForKey:key]; 

    NSMutableCharacterSet charSet = [NSMutableCharacterSet characterSetWithCharactersInString:@"()"]; 
    [charSet formUnionWithCharacterSet:[NSCharacterSet newlineCharacterSet]]; 

    def.txt = [[NSString stringWithFormat:@"%@", nameSection] stringByTrimmingCharactersInSet:charSet]; 
} 
+0

def.text而不是def.txt – StreaminJA 2011-05-25 04:30:55

0

當然,twodefinition字符串是過時的,因爲它們是的nameSectionfive相同副本。