gpt4 book ai didi

ios - "type of expression is ambiguous without more context"- 引用 appDelegate

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:07 32 4
gpt4 key购买 nike

我的 appDelegate 最初是用 Obj-C 编写的。我试图在一个新的 Swift 类中访问它,但我遇到了一个我认为具有误导性的奇怪错误,我正试图找到根源。

在我的 Swift 文件中,我在以下位置设置了一个断点:

var appDelegate = UIApplication.sharedApplication().delegate

如果我只是 po:

po appDelegate

我得到:

Printing description of appDelegate:
Optional(<AppDelegate: 0x7f81a2d1cc40>)

一切都很好。

但是,当我尝试:

po appDelegate.navigationController

在调试控制台中我得到:

error: <EXPR>:1:13: error: type of expression is ambiguous without more context

而 navigationController 是 appDelegate 的属性,在原始 Obj-C appDelegate.h 文件中声明。


这是我原来的 SO 问题:Cannot invoke '...' with an argument list of type '...'


编辑

根据@Martin 的评论,我将代码更改为:

  var appDelegate = UIApplication.sharedApplication().delegate!
appDelegate.navigationController.popViewControllerIsAnimated(true)

现在出现错误:

'UIApplicationDelegate' does not have a member named 'navigationController'

但是,这是我的 Obj-C AppDelegate.h:

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (nonatomic,strong) VUNavigationController *navigationController;

@property (nonatomic,strong) UIWindow *window;

@end

最佳答案

UIApplicationdelegate 方法声明为

unowned(unsafe) var delegate: UIApplicationDelegate?

您必须将返回值转换为应用程序委托(delegate)的具体类型:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

关于ios - "type of expression is ambiguous without more context"- 引用 appDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923598/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com