在一些场景可能我们不希望用户调用默认的方法以避免一些无法控制的事情发生。
可以通过unavailable来禁用那些不想让用户调用的方法。

具体使用方法如下:

// 外部调用将产生编译错误

- (instancetype)alloc __attribute__((unavailable("alloc not available")));
- (instancetype)init __attribute__((unavailable("init not available")));
- (instancetype)new __attribute__((unavailable("new not available")));

就是这么简单,哈哈。