Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to append a NSMutableString with a NSMutableString?

NSMutableString *str, *str1;

//allocation here

i am using [str appendString:str1] is not working. [str appendFormat:str1] is not working.

So, how to append a NSMutableString with another NSMutableString.

@str is an empty string initialize to nil. str1 has some value. [str appendString str1] returns null

like image 917
user426795 Avatar asked Aug 30 '10 11:08

user426795


3 Answers

Swift version

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.

like image 144
Suragch Avatar answered Nov 08 '22 15:11

Suragch


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];
like image 27
Max Seelemann Avatar answered Nov 08 '22 16:11

Max Seelemann


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];
like image 36
VdesmedT Avatar answered Nov 08 '22 15:11

VdesmedT