2015-11-22 3 views
1

У меня есть класс, который для получения Bluetooth данных и интересно, чтобы послать приема данных класса UIViewController и делать в реальном времени черчения (CorePlot)Назначение выхода из другого класса? (Основной участок)

class BluetoothManager: NSObject { 
    func dataReceiving(value: [Int]){ 
     MainController().plot(dataOne: [Int], dataTwo: [Int]) 
} 

MainController класс:

class MainController: UIViewController,CPTScatterPlotDataSource { 

    @IBOutlet weak var graphView: CPTGraphHostingView! 

    func plot(dataOne: [Int], dataTwo: [Int]){ 
     let newGraph = CPTXYGraph(frame: CGRectZero) 
     graphView.hostedGraph = newGraph 
    } 
} 

Когда процедура переходит к graphView.hostedGraph = newGraph, будет иметь фатальную ошибку:

неожиданно нашел ноль в то время разворачивания необязательного значения

Может ли кто-нибудь сказать мне, как точно решить эту проблему? Я знаю, возможно, произошла ошибка, потому что я создаю новый экземпляр MainController , но я очень новичок в разработке iOS, поэтому мне действительно нужно знать подробную процедуру, чтобы исправить это ... BIG Спасибо !!!!!! ! Я буду очень благодарен

Я загружаю свой проект здесь: https://www.dropbox.com/sh/xyghqhyxyy9lm1f/AACfV8JUj7C2Lo3MNcOiGfnIa?dl=0 Не могли бы вы, ребята, помочь мне решить эту проблему? Мне действительно нужно знать ......

ответ

0

graphView розетка выпускается рано из-за слабого положения. Объявите это так:

@IBOutlet var graphView: CPTGraphHostingView! 

Edit:

Я просто заметил еще одну проблему. Строка MainController().plot(dataOne: [Int], dataTwo: [Int]) создает новый объект MainController, который не имеет ссылки на представление графика. Вам нужно получить ссылку на существующий контроллер представления и вызвать функцию plot.

+0

У этого по-прежнему есть фатальная ошибка, точка останова следующая: https://www.flickr.com/photos/[email protected]/23183175446/in/dateposted-public/ или я готов отдать свой проект, я действительно хочу решить эту проблему. Спасибо!!!! – lktlktlkt

+0

Случается ли это сбой при запуске или позже в жизненном цикле приложения? Можете ли вы сообщить из сообщений журнала в нижней части окна, где происходит сбой? Будьте осторожны с необязательными параметрами принудительной развертки («!» Против «?»), Поскольку он скрывает проблемы, которые компилятор может в противном случае помочь вам найти. –

+0

Мое приложение всегда сбой, когда процедура переходит на graphView.hostedGraph = newGraph после вызова функции MainController(). Plot (dataOne: [Int], dataTwo: [Int]). Даже я объявляю, как @IBOutlet var graphView: CPTGraphHostingView !, он все равно падает в той же строке. Я загружаю свой проект здесь: https://www.dropbox.com/sh/xyghqhyxyy9lm1f/AACfV8JUj7C2Lo3MNcOiGfnIa?dl=0 Не могли бы вы помочь мне увидеть, где проблема? Мне действительно нужно знать ... – lktlktlkt