Flutter iOS 模块无法访问新的 Swift 文件并且打印不工作
Posted
技术标签:
【中文标题】Flutter iOS 模块无法访问新的 Swift 文件并且打印不工作【英文标题】:Flutter iOS module can't access new Swift file and print not working 【发布时间】:2020-11-29 08:49:38 【问题描述】:我正在使用Flutter
应用程序,需要从中调用本机ios
代码。我在应用程序的iOS
模块中添加了一个新的Swift
文件,但它无法从AppDelegate
访问它。我也尝试打印一些日志语句,但打印不起作用。
每次我尝试从AppDelegate
访问新文件时,都会出现以下错误:
use of unresolved identifier 'NewFile'
AppDelegate didFinishLaunchingWithOptions
方法如下所示:
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
let testChannel = FlutterMethodChannel(name: "com.test.example/example",
binaryMessenger: controller.binaryMessenger)
testChannel.setMethodCallHandler(
[weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
guard call.method == "testExample" else
print("can't call testExample method")
result(FlutterMethodNotImplemented)
return
print("can call testExample method")
NewFile() //This is the new file I am trying to access
result(10) //10 is just for testing
)
为什么它不访问与AppDelegate
在同一目录中创建的NewFile.swift
?还有为什么print
语句不向控制台记录任何内容?
我正在使用 Visual Studio Code。
我应该添加配置或链接以允许 Visual Studio 代码访问我的文件并记录我的打印语句吗?
【问题讨论】:
最好展示一些你的代码! @Fattie 我添加了一些代码和更多细节 好的,什么是“NewFile()”?请为此粘贴代码,并解释您如何包含它(或任何过程)。这可能是一些简单的事情,例如您忘记将其标记为公开,或者?? 这是一个简单的类,只是为了实现一些第三方自动调用的功能。该第三方需要具有特定名称的单独类。这个名字当然不是NewFile,我这里只是举个例子 很可能你犯了“你忘记了公众”的错误,或者,它实际上没有以正确的方式包含(例如,像“你需要使用 Blah在消费阶层”。祝你好运! 【参考方案1】:似乎应该从 Xcode 而不是 Visual Studio Code 向 iOS 模块添加新文件。当我从 Xcode 添加新文件时,它可以轻松访问它。
iOS 中的日志语句似乎也只适用于 Xcode。
【讨论】:
以上是关于Flutter iOS 模块无法访问新的 Swift 文件并且打印不工作的主要内容,如果未能解决你的问题,请参考以下文章
无法访问“io.flutter.embedding.android.FlutterActivity”的超类型“android.arch.lifecycle.LifecycleOwner”