1
15
我怀疑它只是注意到一个带有前缀的方法
当然,在您的案例中,您指的是文件和其他内容,所以这是一个不可忽略的警告。如果您将方法的名称更改为
|
2
9
此外,有时您确实想用“copy”或其他名称命名方法,因为不管cocoa内存管理准则如何,copy是该方法的最佳名称,您可以用
|
3
4
因为该方法具有名称
|
4
4
不,这是不正确的;除非方法包含“alloc”、“copy”、“new”或暗示该对象将由调用程序拥有的其他关键字之一,否则该方法将返回自动租用或其他托管对象,因此StringByAppendingPathComponent将返回自动租用字符串。 除此之外,您的方法“copydata”包含单词“copy”,这意味着结果应该由调用方拥有(和发布)。但是,您返回的结果是自动释放的,因此它会向您发送错误消息。如果要修复错误,请不要自动释放。即:
当然,这意味着函数的调用者需要释放它。或者,您可以更改函数的名称,使其符合内存管理准则。 “copydata”这个名字,imho,无论如何都是非故意的。我建议您将函数重命名为“pathtosavedatawithdata”或类似的名称。说它实际上在做什么的东西。 |
5
0
我想尝试一下,你会得到同样的错误信息,不管你的程序名是否以“copy…”开头。我刚刚在一个类似的场景中结束,“复制”并不是我所调用的例程的名称。Clang给出错误消息仅仅是因为我返回了一个自动释放的对象,这是一个危险的情况。做
最后,按照迈克尔的建议,技巧解决了这个问题。 |
SongpaGu · 为什么程序在删除符号信息后工作? 2 年前 |
farooq GV · 如何仅使用指针访问结构数组 2 年前 |
hiy · 在os x上未定义strtok\u 6 年前 |
user545424 · 这种叮当作响的优化是一个bug吗? 6 年前 |