해결할 수없는 위임/초기화 문제가 있습니다. 기본적으로 몇 가지 View 컨트롤러가있는 스토리 보드가 있습니다. 스토리 보드 내부에는 정보를 채우도록 DeviceListViewController 클래스와 연결된 UITableview로 구성된이 "View Controller"가 있습니다. 여기에서 나는 다음과 같은 프로토콜을 선언 한 :Swift의 클래스 위임
protocol DeviceListViewControllerDelegate: UIAlertViewDelegate {
var connectionMode:ConnectionMode { get }
func connectPeripheral(peripheral:CBPeripheral, mode:ConnectionMode)
func stopScan()
func startScan()
}
및 클래스 자체 내에서 나는이 같은 init 메소드가 (아마도 잘못이다하지만 난이 시점에서 할 수있는 그 밖의 무엇을 몰랐다) :
convenience init(aDelegate: DeviceListViewControllerDelegate) {
self.init()
self.delegate = aDelegate
}
그런 다음 두 번째 클래스는 BLEMainViewController라는보기 컨트롤러에 연결되지 않습니다. 모든 블루투스 동작을 처리하는 싱글 톤이어야합니다. 즉, DevicelistViewController와 BLEMainViewController 사이에 몇 가지 사항을 위임 할 수 있어야합니다.
class BLEMainViewController: NSObject, DeviceListViewControllerDelegate {
var deviceListViewController:DeviceListViewController!
var delegate: BLEMainViewControllerDelegate?
static let sharedInstance = BLEMainViewController()
}
override init() {
super.init()
// deviceListViewController.delegate = self
deviceListViewController = DeviceListViewController(aDelegate: self)
}
문제는 BLEMainViewController 어떤 뷰 컨트롤러에 연결되어 있지 않습니다 (그렇지 않은 IMO해야한다)하지만 싱글 같이 초기화 할 필요가 있다는 것입니다 : 나는 DeviceListViewControllerDelegate을 상속 한 BLEMainViewController에서
모든 BLE 작업을 처리 할 수 있습니다. 누구든지이 문제를 해결하는 방법에 대한 올바른 방향 (예를 들어 선호)으로 나를 가리킬 수 있습니까?
도움이되기를 바랍니다 수 있습니까? – Wain
글쎄, 나는 알리미를 보여주기 위해 그렇게해야했다. 그러나 나는 그것이 실제로 정말로 어리 석다라고 알았다 :/ – Reshad
나는 지금 보통의 클래스를 만들었다. – Reshad