代码之家  ›  专栏  ›  技术社区  ›  Chiron

我应该发送释放消息到一个casted对象吗?

  •  0
  • Chiron  · 技术社区  · 15 年前

    NSString *name = (NSString*) rawName;
    CFRelease(rawName);
    //should I [name release]; ?
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Jason Coco superfell    15 年前

    不,不要再发送发布消息。这些是不同的 相同的

    通常,当混合核心基础方法和COCOA方法时,将对象保持在基的任何位置(因此,如果您在COCOA中工作,将其保持为NString),当需要使用其他框架的方法之一时,只需将其抛出(例如将字符串传递到核心基础方法),只需将其转换为CFString,而不是保留多个引用)。

        2
  •  1
  •   Dylan Lukes    15 年前

    在这种情况下,*name和*rawName指向同一个对象。CFRelease()'ing rawName将在尝试使用name时导致EXC_BAD_访问。