Как мне вызвать класс базы данных из моего viewcontroller в Objective-C? - PullRequest
0 голосов
/ 29 июля 2011

Я постараюсь объяснить как можно лучше:

У меня есть два класса, на которых я сейчас сосредоточен.Класс базы данных и контроллер представления, все в настоящее время настроено так:

View.h - Имеет «База данных * myDatabase;»
View.m - Вызывает «OpenDB» во время ViewLoad и имеет метод кнопки, который использует: [myDatabase getRow];при нажатии.
Database.h - Имеет "sqlite3 db;"
Database.m - Имеет метод «getRow» и «openDB», который использует «db», объявленный в Database.h.

Это не вызываетошибки во время сборки, но когда моя программа запускается, когда я нажимаю кнопку [myDatabase getRow];ничего не делает.Я использовал NSLog только внутри метода, и он никогда не вызывается.Если это трудно понять, я выложу фрагменты кода, но я подумал, что это будет слишком много кода.

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Обычно, когда вы не видите сообщение, которое ожидаете увидеть, и обстоятельства его совершенно сбивают с толку, это потому, что получатель сообщения равен нулю.

Поместите точку останова внутри вашего viewDidLoad и убедитесь, что myDatabase действительно имеет присвоенное ему значение.

"po myDatabase" в gdb ...

Если на самом деле myDatabase на самом деле не ноль, то второй источник большого горя, пытающийся выяснить, почему что-то не происходит так, как вы ожидаете, пропускает соединения в вашей XIB.

Убедитесь, что действие вашей кнопки связано с вашим контроллером, или если вы программно настраиваете действие кнопки, то убедитесь, что выход контроллера на кнопку подключен.

0 голосов
/ 29 июля 2011

Вы должны создать объект класса Database и получить доступ к методам, использующим эти объекты.Другой обходной путь - заменить эти методы на статические.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...