我是驱动程序开发的新手,所以我想确切地知道以下行在 Objective-C 中的含义
[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES];
我是驱动程序开发的新手,所以我想确切地知道以下行在 Objective-C 中的含义
[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES];
它是一个复合语句,可以分成两个语句
[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES];
变成:
NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer];
[self sendMsg:message :YES];
但是此代码存在约定问题。虽然方法名称不必穿插参数,但最好这样做。在这种情况下,最后一个“:”之前没有方法名称部分,方法选择器(签名)是:
sendMsg::
最好将其声明为:
- (void)sendMsg:(NSData *)msg option:(BOOL)option;
这将有选择器(签名):
sendMsg:option:
并且由此产生的调用将更容易理解:
NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer];
[self sendMsg:message option:YES];
这意味着具有sendMsg:option:
相同类实例的选择器的方法正在被调用(发送消息),参数为message
和YES
。
[self sendMsg] .It is a way of calling a method in ios. With sendMsg specifying the name of the method to be called and self is the entity to call the method.