代码之家  ›  专栏  ›  技术社区  ›  E.M.

这种未定义的行为是否具有目标C属性?

  •  1
  • E.M.  · 技术社区  · 15 年前

    在我最近从事的一个项目中,我有类似下面的代码。

    @interface DetailsViewController : UIViewContoller {
      UIView* headerView_;
    }
    @property (nonatomic, retain) UIView* headerView;
    @end
    
    @implementation DetailsViewController
    @synthesize headerView = undefinedVariableName_;
    // ...
    @end
    

    undefinedVariableName_ 没有在项目中的任何地方定义,实际上是一个不太明显的打字错误。

    它编译得非常好(没有错误或警告),甚至在iOS4上也运行得很好。直到程序在3.1.3固件上崩溃,我才发现这个错误。

    是否有人知道上述行为是否被认为是未定义的?有没有办法让编译器捕捉到这样的错误?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Sven    15 年前

    @synthesize