2015-02-06 2 views
-1
#import <Foundation/Foundation.h> 



int main(int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]init]; 

    NSString *[email protected]"Hotdog? I thought you said hotfrog!"; 
    NSMutableString *mute; 

    mute = [NSMutableString stringWithString:dog]; 
    NSLog(@"%@", mute); 

    [mute setString:@"I am a new string "]; 
    NSLog(@"%@", mute); 

    [mute replaceCharactersInRange: NSMakeRange(11, 12) withString: @"mother"]; 
    NSLog(@"%@", mute); 

    [pool drain]; 
    return 0; 
}  
+0

Что ошибка? –

+1

Это обязательно должно вызвать ошибку, потому что длина строки 'mute' равна 17, а ваш диапазон указывает диапазон начала от 11 до 23 (11 + 12). – Hemang

ответ

-1

Вы хотите использовать метод

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
            withString:(NSString *)replacement 

так target будет @"string" и replacement будет @"Mother". Так что ваша программа могла бы выглядеть следующим образом:

NSString *originalString = @"I am a new string "; 
NSLog(@"Here is the original string: %@", originalString); 

NSString *newString = [originalString stringByReplacingOccurrencesOfString:@"string" withString:@"Mother"]; 
NSLog(@"And here is the new string: %@", newString); 

Есть и другие подобные методы, перечисленные here in the doco.


Обратите внимание, если вы явно хотите использовать NSMutableString пожалуйста, укажите это в вашем вопросе.


Заметим, что это был довольно простой ответ найти на doing a quick Google search

+0

Это изменяемая строка; нет необходимости создавать новый объект. –

+0

@JoshCaswell Это был «NSString» изначально - я говорю, что нет необходимости превращать его в «NSMutableString»: D –

+0

Вы не можете создать 'NSMutableString' непосредственно из литерала. Это, очевидно, образец программы для тестирования с использованием 'NSMutableString'. –

Смежные вопросы