NSMutableString *str, *str1;
//allocation here
i am using
[str appendString:str1]
is not working.
[str appendFormat:str
NSMutableString *mystring = [NSMutableString stringWithFormat:@"pretty"];
NSMutableString *appending = [NSMutableString stringWithFormat:@"face"];
[mystring appendString:appending];
works for me...
are you sure the variables have been allocated (correctly?)? No misspellings?
if str == nil
, no call are performed because there is no object allocated to receive the message but no exception are raised (messages sent to nil return nil by design in Objective-C).
NSMutableString *str, *str1;
str = [NSMutableString stringWithString:@"Hello "];
str1 = [NSMutableString stringWithString:@"World"];
NSMutableString *sayit = [str appendString:str1];
Seems like your're sending a message to nil
. nil
is NOT an object, it's just nothing. Sending a message to nothing just return nothing. In order to append these strings, you need to initialize to an empty string. Like so:
NSMutableString *str = [NSMutableString string];
Then your code will work. Like so:
[str appendString:str1];
Although in Swift it is not the general practice to use NSMutableString, it may at times be necessary. This is how you would do it:
var str: NSMutableString = NSMutableString()
var str1: NSMutableString = "some value"
str.appendString(str1 as String) // str = "some value"
Note that the usual way to append a string in Swift is like this:
var str = ""
let str1 = "some value"
str += str1
where str
and str1
are inferred to be of type String
.