我什么时候应该使用消息而不是C风格的函数?
Objective-c为您做出区分.消息必须发送到对象,但可以随时使用功能.
消息:
Objective-C的消息只能被发送到对象,消息系统是该作的一类方法的调用方式.
例:
// a class interface definition // including a method named aMethod @interface ANObject { } - (void)aMethod; @end
// a message sent to that object: ANObject * myObject = [[ANObject alloc] init]; [myObject aMethod]; // <-- message [myObject release];
功能:
Objective-C继承了所有的C语言,因此当情况需要时,支持C风格的函数调用,甚至鼓励它们.Objective-C对象只是作为指针传递,因此您仍然可以将它们作为参数传递给函数.当然,关于将指针传递给函数的常见注意事项和规则应该得到尊重.
例:
// a regular C-style function void someFunction(ANObject * argument) { // do something here... }
// and how to call it: someFunction(someObject);
何时使用?
当您想要访问某个对象/类的某些属性时,请使用消息/方法.好的例子是访问NSString的长度:
int stringLength = [myString length];
设置属性的值:
[myObject setHidden:YES];
或告诉对象执行某项任务:
[myAccount withdrawMoneyAndDriveToMexico];
如果要执行不属于某个类的任务,请使用C风格的函数 ; 应该独立的东西.好的例子是数学函数,例如:
double degrees = ConvertRadiansToDegrees(radians);