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

时间:2018-05-16 23:18:05

标签: objective-c swift xcode

我在Objective C中定义了一个DataStore类。它具有类型为controller的{​​{1}}属性(在Swift中定义的类)。这两个类都在同一个目标Controller中。当我尝试访问类Foo中的controller属性时,出现错误:

  

类型值' DataStore'没有会员'控制器'

Baz是用Swift编写的,位于同一目标Baz

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 } } 移至Bar目标。我之前(当Foo在另一个目标时)访问DataStore的属性时没有问题。)

1 个答案:

答案 0 :(得分:0)

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

更新Sample Output RNO Names --- ----- 1 Name1,Name5 2 Name4 修复了它:

Controller.swift