Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone -(NSString*)实例方法_Iphone_Objective C_Ios4 - Fatal编程技术网

Iphone -(NSString*)实例方法

Iphone -(NSString*)实例方法,iphone,objective-c,ios4,Iphone,Objective C,Ios4,亲爱的iPhone开发者:, 我有一个用于返回字符串的实例方法 - (NSString *)newFile:(NSString *)inFile andFileNumber:(NSInteger)aNumber { return [NSString stringWithFormat:@"%@.o%i",inFile,aNumber]; } 我把这种方法称为 outputFileName = [self newFile:inputFileName andFileNumber:newNum

亲爱的iPhone开发者:, 我有一个用于返回字符串的实例方法

- (NSString *)newFile:(NSString *)inFile andFileNumber:(NSInteger)aNumber {
    return [NSString stringWithFormat:@"%@.o%i",inFile,aNumber];
}
我把这种方法称为

outputFileName = [self newFile:inputFileName andFileNumber:newNumber];
// where inputFileName is a string and newNumber is an integer 
// outputFileName (also a string), inputFileName and newNumber are declared in
// the interface and in the implementation
当我用Analyzer编译项目时,它会给出以下消息

方法返回具有+0 retain count非拥有引用的Objective-C对象 对象返回给具有+0非所有者保留计数的调用方 具有+0保留计数的对象返回给调用方,调用方预期拥有+1保留计数
当它试图释放outputFileName时,应用程序也会崩溃。有人知道出了什么问题吗?提前感谢。

问题在于传统的假设。具体来说,静态分析器假定任何以new开头的方法都会返回一个保留的对象。这是因为系统API遵循此约定


重命名你的方法;fileNameWithBase:fileNumber:浮现在脑海中。

问题在于对惯例的假设。具体来说,静态分析器假定任何以new开头的方法都会返回一个保留的对象。这是因为系统API遵循此约定


重命名你的方法;FileName WithBase:fileNumber:浮现在脑海中。

您正在返回一个自动删除的字符串。如果你向它发送一条额外的-release或-autorelease消息,你的应用程序将在下次尝试访问该字符串时崩溃


您应该花点时间阅读Apple开发人员文档中的内存管理部分。

您返回的是一个自动删除的字符串。如果你向它发送一条额外的-release或-autorelease消息,你的应用程序将在下次尝试访问该字符串时崩溃


您应该花点时间阅读Apple开发人员文档中的内存管理部分。

您的方法以new开头,analyzer假设您希望返回一个带有+1保留计数的对象。更改方法的名称,警告将消失


另外:该方法返回一个自动释放的对象;您不应该自己释放它。

您的方法以new开头,analyzer假定这意味着您希望返回一个带有+1保留计数的对象。更改方法的名称,警告将消失


另外:该方法返回一个自动释放的对象;您不应该自己发布它。

除了名称会混淆静态分析器之外,该方法没有任何问题。除了名称会混淆静态分析器之外,该方法没有任何问题。亲爱的kubi,非常感谢。正是这种新技术让分析仪感到困惑。亲爱的库比,非常感谢。正是这种新技术让分析仪感到困惑。