尝试应用补丁并编译收到的警告消息:
<some_file>: In function '-[XXXXX saveAndCreate:]':
<some_file>:262: warning: 'NSString' may not respond to '-stringByReplacingOccurrencesOfString:withString:'
<some_file>:262: warning: (Messages without a matching method signature
<some_file>:262: warning: will be assumed to return 'id' and accept
<some_file>:262: warning: '...' as arguments.)
distcc[6493] ERROR: compile (null) on localhost failed
抱怨这段代码,
[clientHost findAvailableIn:
[clientHost defaultVMPath]
baseName:
[displayName stringByAppendingPathExtension:PL_BUNDLE_EXTENSION]
nameFormat:[[displayName
stringByReplacingOccurrencesOfString:@"%"
withString:@"%%"]
stringByAppendingString:@" %u.xxxx"]
startIndex:2
contextInfo:contextInfo];
这是编译命令的一部分:
lin32/gcc-5363-1/bin/i686-apple-darwin8-gcc -mmacosx-version-min=10.4 -arch i386 -march=pentium-m -mtune=prescott -Werror -Wall -Wno-trigraphs -Wreturn-type -Wunused-variable -pipe -O2 -g3 -gfull -Wno-pointer-sign -x objective-c -fobjc-exceptions -fpascal-strings -fmessage-length=0
用Google搜索警告并尝试使用方法here,但仍然收到警告信息。
我在Mac开发中一无所知,如果这是显而易见的事情,请不要理我(我不知道上面提供的信息是否过时,请告诉我还需要提供什么)。感谢名单。
修改: 1)扩展代码块。 2)更正警告信息。
答案 0 :(得分:2)
警告引用的是与您引用的不同的行。您使用的消息称为stringByReplacingOccurrencesOfString:withString:
,NSString
就可以了。然而,方法replaceOccurrencesOfString:withString
试图改变接收器。 NSString
是不可变的,因此无法更改。如果要使用该方法,请将其发送到NSMutableString
对象。
答案 1 :(得分:1)
您要导入<Foundation/Foundation.h>
吗?非常令人惊讶的是,您会收到此警告,但-stringByAppendingPathExtension
没有警告。这真的是你收到的唯一警告吗?
我建议分解代码来创建一些临时变量。你正在进行如此多的嵌套方法调用,这使得很难确定你的错误在哪里。编译器将优化大多数临时变量,因此在使代码更清晰时没有理由避免它们。