用于分配初始值设定项的可可命名方案
|
由于某种原因,我认为这在内存管理命名规则下是有效的:
Bar *bar = [Bar new];
[Foo fooWithNewBar:bar];
// no need to release bar, foo took ownership
但是,现在我正在执行静态分析,它认为每次执行此操作时都可能存在泄漏。
我看到可以在fooWithNewBar
声明中使用__attribute((ns_consumed))
。但是Xcode 4.0.1 \的Clang尚不支持此属性。
那么,没有这样的命名模式吗?
没有找到相关结果
已邀请:
5 个回复
邦绊门蔽惩
属性的更新版本的Clang静态分析器,该属性是由checker-254发布的。 我使用的是checker-256(今天发布,但是任何> = 254的版本都可以使用),而我刚刚尝试了以下操作:
和
这段代码为静态分析器警告了存储在
中的字符串的潜在泄漏:
而此代码使用具有
属性的method参数的代码,则不会发出静态分析器警告:
淘圃跺枯替
戒黑恳农
你自己吧。
如果这要拥有酒吧,则应保留它。那并不会放弃您的所有权,因此您仍然必须释放酒吧。 我从未见过您使用的模式。
骂狮淋唐便
为止。
糖固傻染
,而不是
样式。换句话说,您不会将所有权转让给“ 16”实例。相反,
实例在您的
实例中声明了ownerhsip的份额(也让您,
的调用者也拥有所有权)。在释放实例之前,您始终需要放弃实例的所有权份额。因此,您的示例应为
请注意,您必须使用
而不是
放弃您的所有权份额,因为
需要有机会在ѭ24chance被释放之前要求所有权。