我是目标c的新手。我想替换我使用代码
的可变字符串的内容NSMutableString *myMutableStringObj = [myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"];
但它告诉我警告
从NSMutableString *
NSString *
的无法比较的指针类型
对此有任何建议。我正在使用MutableString
。
答案 0 :(得分:0)
它告诉你这个函数返回NSString *
。如果要清除该警告。就这样做:
NSMutableString *myMutableStringObj = [[myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"] mutableCopy];
答案 1 :(得分:0)
请参阅NSString Class中的方法signeture。
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
此方法返回NSString对象。
因此,您需要将结果转换为mutalbe字符串或在NSString中捕获结果。
答案 2 :(得分:0)
阅读NSString和NSMutableString的文档。这不仅适用于你,也适用于迄今为止在此回答的任何人。这个帖子的答案绝对令人沮丧。
有一些方法可以用于NSString,但也可以使用NSMutableString,它根据前一个字符串创建一个新的不可变字符串。通常,以“stringBy ...”开头的方法将创建一个新字符串。
在NSMutableString接口中有一些方法,它们修改现有NSMutableString的内容。比如“replaceOccurencesOfString”。
阅读文档并选择适合您的方法。以“stringBy”开头的方法是 not 来修改你的可变字符串,它正在创建一个新的不可变字符串。若要修改字符串,请使用NSMutableString接口中的方法。幸运的是,编译器会在您使用错误的方法时告诉您。
答案 3 :(得分:-1)
使用此代码
DECLARE @var VARCHAR(100)
,@SQL NVARCHAR(max) = ''
SET @var = 'DBRND'
SET @sql = 'select name From ' + @var + '.sys.procedures'
EXEC SP_EXECUTESQL @SQL