sharedInstance недоступен из-за «внутреннего» уровня защиты - PullRequest
0 голосов
/ 29 июня 2018

Я импортировал Cocoapod, который помогает подключить мое приложение к устройству с низким энергопотреблением Bluetooth. При попытке получить доступ к экземпляру класса я получаю сообщение об ошибке sharedInstance недоступен из-за «внутреннего» уровня защиты. Почему я получаю эту ошибку?

Ниже приведен класс, содержащий экземпляр.

import Foundation
import CoreBluetooth
import Alamofire
import SwiftyJSON

public class OBD2_BLE: NSObject, CBCentralManagerDelegate, 
CBPeripheralDelegate {

    var centralManager: CBCentralManager!
    var obd2: CBPeripheral?
    var dataCharacteristic:CBCharacteristic?

    var obdCommands:[String: String]! = [
        "speed": "010D",
        "vin": "0902"
    ]

    var configurationCommands = [
        "ATE0",
        "ATH0",
        "ATS0",
        "ATL0",
        "ATSP0"
    ]

    var obdResponse:[UInt8] = []
    let endOfResponseNotificationIdentifier = 
Notification.Name("endOfResponseNotificationIdentifier")

    // setupOutput is expected output from device after reset (no prior 
configuration)
    // partialsetupOutput is expected output from device without reset 
(device remained configured from previous run)
    let restartSetupOutput = "\r\rELM327 
v1.5\r\r>ATE0\rOK\r\r>OK\r\r>OK\r\r>OK\r\r>OK\r\r>"
    let setupOutput = "ATE0\rOK\r\r>OK\r\r>OK\r\r>OK\r\r>OK\r\r>"
    let partialsetupOutput = "OK\r\r>OK\r\r>OK\r\r>OK\r\r>OK\r\r>"
    var setupComplete = false

    var vinNumber:String?

    static let sharedInstance = OBD2_BLE()
    private static let setup = OBD2_BLESetup()

    class func setup(restoreId: String){
        OBD2_BLE.setup.restoreId = restoreId

    }


    public override init() {
        super.init()

        let restoreId = OBD2_BLE.setup.restoreId

        if restoreId == nil {
            self.initWithoutBackground()
        } else {
            self.initWithBackground(restoreId: restoreId!)
        }
    }

Ниже я пытаюсь получить доступ к экземпляру

import UIKit
import CoreBluetooth
import OBD2_BLE

class BluetoothViewController: UIViewController, UITableViewDelegate {

    @IBOutlet weak var bluetoothTableView: UITableView!
    var deviceArray = [CBPeripheral]()

    var centralManager : CBCentralManager!
    var currentPeripheral : CBPeripheral?

    let obd2 = OBD2_BLE.sharedInstance // Where i receive error

    var currentRow : IndexPath?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        centralManager = CBCentralManager(delegate: self, queue: nil)
        bluetoothTableView.dataSource = self
        bluetoothTableView.delegate = self

    }
...