2012-04-30 1 views
0

Я полностью потерял попытку настроить основные данные, которые будут использоваться внутри моего класса nsobject. Я добавляю coredata в свой существующий проект, поэтому его довольно сложно понять все это. Из-за этого я начал новый проект с coredata, чтобы получить образец кода, который мне нужен для реализации coredata в моем текущем приложении. Однако мне интересно , какие изменения мне нужно сделать, чтобы использовать этот пример кода coredata с объектом class вместо диспетчера представлений/tableview, что делает код шаблона?пытается использовать coredata с классом объекта ** безуспешно **

Чтобы ответить на мой вопрос, я объясню, что я делаю с моим проектом на данный момент.

У меня есть несколько диспетчеров просмотра, которые отображают разные наборы данных, потому что у меня есть собственный механизм базы данных, с которым мне нужно общаться. У меня есть два класса, которые я создал. Один из них - это класс запросов, который создает пакет со всеми видами данных, которые отправляются в DBEngine с использованием NSURLRequest/NSURLConnection.

Я использую делегаты NSURLRequest/NSURLConnection в своем классе пользовательских запросов, поэтому, когда вы отправляете мой запрос в DBEngine, я жду, пока не получаю ответ внутри метода connectionDidFinishLoading delegate, который затем передаю данные ответа в класс ответов как так ....

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    // depending on what sorta request is made will depend on how the data shuld be handled. 
    if ([methodName isEqualToString:@"GetDBVersion"]) { 
     //tbc 
    } 
    else if ([methodName isEqualToString:@"GetManuf"]) 
    { 
     [engineResponses GetManuf:receivedData]; 
    } 
    else if ([methodName isEqualToString:@"GetNonM"]) 
    { 
     [engineResponses GetNonM:receivedData RestrictionID:RestrictionID]; 
    }   
} 

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

Так, как указано abov e Мне интересно, как я могу отредактировать код шаблона, чтобы работать в мою пользу ... Надеюсь, я был ясно в своем объяснении. Я только что провел последний час, пытаясь получить этот вопрос, как я провел последние два дня преследуя мой хвост, пытаясь понять этот материал .. его первый раз, когда я работал с coredata, и им просто трудно было справиться с этим, потому что я, кажется, использую его в нетрадиционной манере ....

любая помощь была бы высоко оценена .. если вам нужен еще один пример кода или более подробные объяснения, спросите пожалуйста. Я сделаю все, что в моих силах, чтобы получить помощь.

+0

Основные данные используются для локального хранения приложений. Однако вы, кажется, описываете удаленную базу данных (NSURLConnection и т. Д.). Не могли бы вы рассказать о том, для чего вы используете основные данные? Все объекты Core Data по умолчанию наследуют от NSManagedObject, который является объектом. Вы видели эту страницу: http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started? – borrrden

+0

Я использую coredata для хранения (список значений, которые находятся в формате NSData) NSData, возвращаемый с сервера в соответствии с моим запросом. Затем я буду использовать основные данные, такие как кеш, до изменения моей версии db, и мне нужно обновить данные в моем объекте coredata.Я понимаю, что для этого есть лучшее решение, которое Apple предоставляет в виде делегатов NSURLConnection (кэширование) и т. Д., Однако из-за пользовательских заголовков, которые мне нужно использовать, как описано в DBEngine, я общаюсь с необходимостью более нетрадиционного кэширования укладка необходима для связи с dbengine –

+0

Я думаю, что я, возможно, решил свою проблему .. однако мне нужна помощь в выяснении, есть ли что-нибудь в моей coredata .. в основном я создал шаблон одноэлементного дизайна для доступа к моим engineResponses .. так что я Я уверен, что я инициализировал два экземпляра этого класса объектов .. один раз из моего другого класса объектов, а другой из appdelegate ... теперь мне нужно найти способ тестирования, если данные на самом деле находятся в объекте coredata. но я не совсем уверен, как это сделать. –

ответ

0

Итак, я выяснил, что проблема заключалась в объявлении нескольких экземпляров одного и того же объекта .. Так что все, что мне нужно было сделать, это использовать одноэлементный проект, чтобы он работал отлично.

А люди не любят одиночки, но я не уверен, как еще обойти эту проблему ???? Любые предложения будут ценны.

Кроме того, я знаю, что это сработало, потому что с тех пор я проверил БД, зарегистрировав storeURL в appdelegate, а затем скопировав вставку этого каталога в файл goto, - затем откроем sqlite db в xcode .. все значения находятся в там отлично.

+0

Модели Singleton определенно имеют свои возможности – danielbeard

+0

lol, да. Я тоже так думаю. Когда я был в университете, несколько моих программирующих учителей говорили о них много и насколько они полезны. Однако это было для других языков, не являющихся объективными C, когда когда-либо я читал что-либо о stackoverflow о singleletons и ObjC, есть много ненавистников. lol Я просто хочу убедиться, что я неправильно делаю что-то. –

+1

Ознакомьтесь с http://nachbaur.com/blog/smarter-core-data –

Смежные вопросы