【发布时间】:2011-06-07 08:37:02
【问题描述】:
在Objective-C中,当我想调用一个子程序时,我会向一个对象发送一条消息,例如:
[self mySubroutine:myParameter];
有一个(可以忽略不计?)性能损失,所以我可以只使用 C 风格的函数调用:
mySubroutine(myParameter);
后者的实现将驻留在类的 @implementation 上下文之外。
这是禁忌吗?这很常见吗?有这方面的最佳实践吗?
【问题讨论】:
-
调用 C 函数而不是发送 Objective-C 消息只是为了性能是......叹息。你还不如干脆不使用 Objective-C!
-
说,我有一个 sin_approx() 函数,它可以计算 sin() 的粗略估计——对于手头的目的来说已经足够了,但在性能方面比 sin() 更省力。 (例如,想想 iPhone 上的实时声音合成。)这更像是一种实用功能,而不是“向对象发送消息”。更重要的是,如果函数应该是可重用的并且不与类绑定,我无法想象创建一个数学实用程序类的单例对象,只是为了更快地做一些事情。
-
函数确实是这样。
-
@BoltClock 相反,当函数和类之间没有有意义的关系时,使用Objective-C消息传递只是为了它,就像“......叹息”一样。
-
@walkytalky:
-(void)agreeWith:(NSString *)user { NSLog(@"@%@: Totally.", user); } [self agreeWith:@"walkytalky"];
标签: objective-c c subroutine