objective-c - 这个 Objective-C(或者 c)语法有什么作用?

标签 objective-c

我在一些示例代码中遇到过这个:

- (IBAction) startPlayLowNote:(id)sender {

  UInt32 noteNum = kLowNote;
  UInt32 onVelocity = 127;
  UInt32 noteCommand =   kMIDIMessage_NoteOn << 4 | 0;

    OSStatus result = noErr;
  require_noerr (result = MusicDeviceMIDIEvent (self.samplerUnit, noteCommand, noteNum, onVelocity, 0), logTheError);

logTheError:
    if (result != noErr) NSLog (@"Unable to start playing the low note. Error code: %d '%.4s'\n", (int) result, (const char *)&result);
}

“logTheError:”是做什么的?这个语法叫什么?我在哪里可以找到有关它的更多信息?

最佳答案

logtheError: 是一个标签。 require_noerr 宏中有一个 goto,它会在出现错误时跳转到指定的标签。这是一个简化和扩展的 goto/label 示例,没有任何有趣的业务或宏:

int call2Functions(void)
{
   int err = function();
   if (err)
     goto errorExit;

   err = function2();

 errorExit:
   return err;
 }

它最初是 C 语法。您可以在 C 标准的6.8.1 标记语句部分了解更多信息。

关于objective-c - 这个 Objective-C(或者 c)语法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619034/

相关文章:

objective-c - 阻止第三方 iOS 框架的网络访问

iphone - 委托(delegate)与协议(protocol)

objective-c - 我可以使用 UIPinchGestureRecognizers 来区分水平和垂直捏合吗?

objective-c - 如何在 NSNotificationCenter 中使用参数化方法?

ios - 同时对 2 个或更多位置进行地理编码

ios - 在 VC 堆栈中快速移动 UIButton

iphone - 与 UIGestureRecognizer 一起监听 UITouch 事件

ios - 在 swift 3 中使用自定义 View 选择多个日期范围

objective-c - 为 NSTableView 中的一行设置动画

ios - CollectionView 与单元格重叠