2014-01-06 37 views
0

我希望我的輸出是「23」,但它仍然顯示「123」。stringByReplacingOccurrencesOfString:不起作用

NSString *valorTextField = [[NSString alloc] initWithFormat:@"123"]; 
    [valorTextField stringByReplacingOccurrencesOfString:@"1" withString:@""]; 
    NSLog(@"%@", valorTextField); 
+0

試試看:'NSString * valorTextField; valorTextField = @「123」; [valorTextField stringByReplacingOccurrencesOfString:@「1」withString:@「」]; NSLog(@「%@」,valorTextField);' – logixologist

回答

11

stringByReplacingOccurrencesOfString返回字符串:

NSString *valorTextField = [[NSString alloc] initWithFormat:@"123"]; 
NSString *replaced = [valorTextField stringByReplacingOccurrencesOfString:@"1" withString:@""]; 
NSLog(@"%@", replaced); 

或者,你可以用NSMutableString操作和使用 replaceOccurrencesOfString:withString:options:range:方法。

5

您不再將返回的字符串分配給valorTextField。你只是在執行功能。實際的字符串不變。改寫:

valorTextField = [valorTextField stringByReplacingOccurrencesOfString:@"1" withString:@""]; 
NSLog(@"%@", valorTextField); 
+0

@jcesar它會。我之前已經完成了很多次:) – NightFury

+0

當然,您可以爲'valorTextField'指定一個新值。 *不可變*表示您不能修改'valorTextField'指向的字符串對象。 –

+0

對不起,我誤解了那件事..謝謝指出:) – NightFury

相關問題