我在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
的属性时没有问题。)
答案 0 :(得分:0)
问题与Swift和Objective-C之间的循环引用有关:https://cjwirth.com/tech/circular-references-swift-objc
更新Sample Output
RNO Names
--- -----
1 Name1,Name5
2 Name4
修复了它:
Controller.swift