我是驱动程序开发的新手,所以我想确切地知道Objective-C中以下行的含义
[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES];
答案 0 :(得分:2)
这是一个复合语句,可以分为两个语句
[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
的方法(发送消息)。
答案 1 :(得分:0)
[self sendMsg]。这是一种在ios中调用方法的方法。 使用sendMsg指定要调用的方法的名称,self是调用方法的实体。