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

目标C中的安全铸造

  •  8
  • Casebash  · 技术社区  · 15 年前

    在Objtovi-C中有什么类似C++安全的注册表吗?

    我知道它们在目标C++中,但是我不确定可能的副作用。使用目标C++可能会缩短编译时间-还有其他原因不使用它吗?

    3 回复  |  直到 15 年前
        1
  •  10
  •   Casebash    15 年前

    Objest-C确实有C++安全的强制转换。或者,我们可以使用运行时反射:

    id myOb=[someObject getObject];
    NSAssert([myOb isKindOfClass:[MyClass class]], @"Return value is not of type MyClass as expected.");
    MyClass * newOb= (MyClass *)myOb;
    

    参考文献:

    Cocoa with Love :

        2
  •  0
  •   Chuck    15 年前

    在这种情况下,您可以打开编译器标志来警告您。这个特定的错误会被-wconversion标志捕获。

        3
  •  -1
  •   Darren    15 年前

    你认为C++的哪一个特性能帮助你施放一个64位? long 到32位 int ?