由于';内部';保护级别-Swift 4 iOS
我对Swift编程有点陌生,所以如果这看起来很愚蠢,请原谅我。我在ViewController外部有一个类,我想在ViewController内部实例化该类,但我得到一个错误: 由于“内部”保护级别,无法访问初始值设定项 班级:由于';内部';保护级别-Swift 4 iOS,ios,swift4,xcode9,Ios,Swift4,Xcode9,我对Swift编程有点陌生,所以如果这看起来很愚蠢,请原谅我。我在ViewController外部有一个类,我想在ViewController内部实例化该类,但我得到一个错误: 由于“内部”保护级别,无法访问初始值设定项 班级: public class TappyBleScanner : NSObject, CBCentralManagerDelegate { public var manager : CBCentralManager = CBCentralManager(del
public class TappyBleScanner : NSObject, CBCentralManagerDelegate {
public var manager : CBCentralManager = CBCentralManager(delegate: self, queue : nil)
public init(){} //based on other posts, I thought this would solve it
}
ViewController中的代码:
public func scanForTappyBle() {
var tappyScanner : TappyBleScanner = TappyBleScanner() //<- This is where Xcode 9 reports the error
}
public func scanForTappyBle(){
var tappyScanner:TappyBleScanner=TappyBleScanner()//我甚至无法编译您拥有的内容(Xcode 9.2)。您需要重写init()。并且不能在manager的静态初始化中使用self
如果将TappyBleScanner更改为以下内容,它将编译并运行:)
谢谢!是的,我只提供了一个代码片段,所以没有太多的内容要看。我最初使用的是overide init()同样的错误也产生了,甚至尝试显式地将其标记为public,但没有成功。我怀疑现在项目配置有问题,因为今天早上它似乎根本找不到依赖项(未声明的类型错误等),除重新启动外,我没有做任何更改。我也是XCode新手。我会让依赖项/引用再次工作,然后尝试您的建议
public class TappyBleScanner : NSObject, CBCentralManagerDelegate
{
public var manager : CBCentralManager?
override init()
{
super.init()
self.manager = CBCentralManager(delegate: self, queue : nil)
}
public func centralManagerDidUpdateState(_ central: CBCentralManager)
{
}
}