Objective C 文件中定义的属性在 Swift 中不可见(相同目标)

南巴蒂

我有一个DataStore在 Objective C 中定义类。它有一个controllertype 属性Controller(在 Swift 中定义的类)。两个类都在同一个目标中Foo当我尝试访问controllerclass 中属性时Baz,出现错误:

“DataStore”类型的值没有成员“controller”

Baz是用 Swift 编写的,并且在同一个 target 中Foo

DataStore.m(目标Foo

#import <Foo/Foo-Swift.h>
@interface DataStore ()
@property (nonatomic, strong) Controller *controller;
@end

DataStore.h(目标Foo

@class Controller;
@interface DataStore: NSObject
@property (readonly, strong, nonatomic) Controller *controller;
@end

Controller.swift(目标Foo

@objc(NHController)
public class Controller: NSObject {
  //
}

Baz.swift(目标Foo,曾经是另一个目标)

class Bar {
   func test() {
     let dataStore = DataStore()
     dataStore.controller // compiler error
   }
}

我尝试了十几次清洁和建造。我尝试清除派生数据,但没有做任何事情。我只是移动BarFoo目标。我访问DataStore之前的属性没有问题(当Baz在另一个目标中时。)

南巴蒂

该问题与 Swift 和 Objective-C 之间的循环引用有关:https : //cjwirth.com/tech/circular-references-swift-objc

更新Controller.swift修复它:

public typealias Controller = NHController

@objc public class NHController: NSObject {
  //
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift中不可见的Objective-C协议方法

来自分类Dev

Objective-C-Swift类在Objective-C .h文件中不可见

来自分类Dev

以Swift枚举作为参数的Swift方法在Objective C中不可见

来自分类Dev

从 Swift 调用 .h 文件中定义的 Objective-C 函数

来自分类Dev

在目标C中不可见的快速初始化

来自分类Dev

Swift中的Objective C委托

来自分类Dev

在Objective-C中包含Swift文件

来自分类Dev

在Objective-C中包含Swift文件

来自分类Dev

我可以像在Objective-C中那样为Swift类定义属性的方法吗?

来自分类Dev

Swift类使用两个在不同目标中具有相同名称的Objective C文件

来自分类Dev

Swift类使用两个在不同目标中具有相同名称的Objective C文件

来自分类Dev

从Swift访问在Objective-c .m文件中定义的全局const CGFloat

来自分类Dev

Swift Application在Objective C库中定义的引用类型

来自分类Dev

Objective-C类中的Swift协议

来自分类Dev

在Swift中实现Objective C协议

来自分类Dev

在Swift中捕获Objective-C异常

来自分类Dev

在Swift中实现Objective C代码

来自分类Dev

在Swift中重写Objective C类方法

来自分类Dev

initWithDictionary:在Objective-C和Swift中

来自分类Dev

从Objective C中的Swift函数获取值

来自分类Dev

从Objective C中的Swift类继承

来自分类Dev

Swift中的Objective-C枚举

来自分类Dev

initWithDictionary:在Objective-C和Swift中

来自分类Dev

Swift和Objective-C中的CellForRowAtIndexPath

来自分类Dev

Swift或Objective C中的CalDAV处理

来自分类Dev

Swift 中的 Objective C 类方法调用

来自分类Dev

在 Swift 中实现 Objective-C 协议

来自分类Dev

在Swift AppDelegate外部不可见的Objective-C框架类

来自分类Dev

Swift:PlayGround中的UIWebView不可见

Related 相关文章

热门标签

归档