【发布时间】:2013-03-02 00:39:33
【问题描述】:
这个问题是出于好奇,为了我自己的乐趣,而不是它是否是一个好主意,但主要来自 C#/JavaScript 背景,在 Objective-C 中不断看到这个问题让我觉得有点难看:
MyClass* myObj = [[MyClass alloc] init];
...我很好奇是否可以定义一个 C 风格的宏,这样它就可以变成这样:
MyClass* myObj = new MyClass;
...或语法相似的东西。
以前有人做过或见过吗?随意评论为什么它可能是一个可怕的想法(除了明显的不标准和不熟悉的想法),但这不会阻止我想知道它是否可以完成。 ;)
【问题讨论】:
-
你可能有兴趣知道 NSObject 也是 implements
+new所以你可以做MyClass *myObj = [MyClass new];。它不像 alloc/init 那样常见,但它完全有效。编辑:而且,当我写这篇评论时,卡尔正在用这个信息更新他的答案...... -
这是一篇关于在 Obj-C 中使用 C 宏(以及这样做的危险)的好文章:weblog.highorderbit.com/post/11656225202/…
标签: objective-c