views:

725

answers:

1

I expected this code to replace the hate with some love.

 NSMutableString *teststring=@"I hate programming my iPhone";

 NSString *overwriteSource=@"love";

 NSRange temprange=NSMakeRange(2, 4);

 [teststring replaceCharactersInRange:temprange withString:overwriteSource];

 NSLog(@"%@",teststring);

This terminates due to an uncaught exception and I can't figure out why. Help ! (and thanks)

+4  A: 

In your first line, you're attempting to assign an NSString * (@"I hate...") to an NSMutableString * (teststring).

Your original code should give you a compilation warning:

incompatible Objective-C types initializing 'struct NSString *', expected 'struct NSMutableString *'

The following will allow your code sample to compile and run correctly:

NSMutableString *teststring=[NSMutableString stringWithString:@"I hate programming my iPhone"];
rcw3
Many Thanks - (I don't get a compilation warning)
Nigel