【问题标题】:Which release to use on toll free bridged data types?哪个版本可用于免费桥接数据类型?
【发布时间】:2012-04-16 10:26:04
【问题描述】:

我对以下代码有疑问,需要一些建议,

NSArray*  onscreenwindows = (NSArray*)CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);

以下哪个版本是正确的?

if(onscreenwindows)
{

...

[onscreenwindows release];
}

if(onscreenwindows)
{

...

CFArrayRef cfonscreenwindow = (CFArrayRef)onscreenwindows
CFRelease(cfonscreenwindow);
}

【问题讨论】:

    标签: objective-c macos cocoa core-foundation


    【解决方案1】:

    由于它们是免费桥接的,因此您可以随意使用两者。

    【讨论】:

    • 尽管if 语句在后一种情况下不是可选的,因为如果您将CFRelease 传递给NULL,则CFRelease 将崩溃,而将任何消息(包括release)发送到nil什么都不做。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多