使用 RCT_EXPORT_METHOD 语法时,如何修复 Xcode 上的“忽略方法主体之前的分号”错误?

Posted

技术标签:

【中文标题】使用 RCT_EXPORT_METHOD 语法时,如何修复 Xcode 上的“忽略方法主体之前的分号”错误?【英文标题】:How to fix 'Semicolon before method body is ignored' error on Xcode when using RCT_EXPORT_METHOD syntax? 【发布时间】:2019-04-17 18:21:38 【问题描述】:

我正在将 React Native 集成到现有的 ios/android 项目中。我正在尝试制作一个原生模块来帮助从 React Native 屏幕导航到 iOS 屏幕。我能够创建用于导航的 Android Native Module 以从 React Native 调用 Android 活动。

在为 iOS 编写我的导航本机模块时,Xcode 不断突出显示我的方法,并在我的所有 RCT_EXPORT_METHOD() 方法中出现“忽略方法主体之前的分号”错误。

我使用的是 Xcode 9.2,React Native 0.59.3。

https://facebook.github.io/react-native/docs/native-modules-ios#docsNav

我一直在关注上面的文档,但我无法弄清楚为什么 Xcode 无法识别语法。 我还尝试在 Xcode 9.4 中运行代码并得到相同的“忽略方法主体之前的分号”语法错误。

导航模块.h

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>

@interface NavigationModule : NSObject <RCTBridgeModule>

@end

导航模块.m

#import "NavigationModule.h"

@implementation NavigationModule

RCT_EXPORT_MODULE(NavigationModule);

RCT_EXPORT_METHOD(onOptionAboutSelected:(NSString *)title)

    //TODO


RCT_EXPORT_METHOD(onOptionLockSelected)

    //TODO



@end

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

找到解决方案:需要更改项目的 XCode 设置。

项目 -> 选择目标 -> 构建设置 -> 将“将警告视为错误”设置为“否”。

代码应该构建。

【讨论】:

以上是关于使用 RCT_EXPORT_METHOD 语法时,如何修复 Xcode 上的“忽略方法主体之前的分号”错误?的主要内容,如果未能解决你的问题,请参考以下文章

目标c只能从主线程调用

从 Javascript 调用包装器函数会导致应用程序崩溃 - React-Native

RN与IOS原生双向通信以及UI绑定通信的使用方式

使用 vuex 时如何在 typescript 语法中使用 mapState 函数?

使用 acm.graphics 时 mouseListener 的语法是啥

使用 AT&T 语法时汇编程序崩溃 [重复]