2010-08-30 48 views
8
NSMutableString *str, *str1; 

//分配这里如何附加NSMutableString与NSMutableString?

我使用 [str appendString:str1]不工作。 [str appendFormat:str1]不起作用。

那么,如何在另一个NSMutableString上附加NSMutableString

@strempty string初始化为nilstr1有一定的价值。 [str appendString str1]回报null

+2

为了让我们帮助你,我们需要知道你的情况下“不工作”是什么意思,因为我们的水晶球目前不工作:)根据苹果文档,这两种方法都应该做你正在尝试的do(http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableString/appendString :) – fresskoma 2010-08-30 11:45:39

+0

什么是“不起作用”是什么意思?例外? – tobiasbayer 2010-08-30 11:46:42

+0

不起作用意味着无法追加。 – user426795 2010-08-30 11:59:52

回答

0
NSMutableString *mystring = [NSMutableString stringWithFormat:@"pretty"]; 
    NSMutableString *appending = [NSMutableString stringWithFormat:@"face"]; 
    [mystring appendString:appending]; 

为我的作品...

你确定变量已分配(正确?)?没有拼写错误?

21

似乎你的消息发送到nilnil不是一个对象,它只是没有。发送邮件至没有任何内容只是返回没有内容。为了附加这些字符串,您需要初始化为空字符串。像这样:

NSMutableString *str = [NSMutableString string]; 

然后你的代码将工作。像这样:

[str appendString:str1]; 
3

如果str == nil,执行没有呼叫,因为没有分配给接收消息的对象,但也不例外上调(发送邮件至零设计在Objective-C返回nil)。

NSMutableString *str, *str1; 

str = [NSMutableString stringWithString:@"Hello "]; 
str1 = [NSMutableString stringWithString:@"World"]; 

NSMutableString *sayit = [str appendString:str1]; 
+0

然后如何设置我的我的NSMutableString为null。因为我的程序的某些部分我想将str1设置为空。 – user426795 2010-08-30 14:48:43

+0

这可能是时候更准确地解释你到底想做什么了...... btw,empty和nil是不同的东西 – VdesmedT 2010-08-30 21:06:52

+0

[NSMutableString string]创建一个空的可变字符串I.e. “” – VdesmedT 2010-08-31 06:52:50

0

斯威夫特版本

虽然斯威夫特是不使用的NSMutableString,it may at times be necessary一般的做法。这是你会怎么做:

var str: NSMutableString = NSMutableString() 
var str1: NSMutableString = "some value" 
str.appendString(str1 as String) // str = "some value" 

注意,要追加在斯威夫特字符串通常的方式是这样的:

var str = "" 
let str1 = "some value" 
str += str1 

其中strstr1被推断为String类型。