Обновить элемент NSManagedObject с помощью RubyMotion

Я быстро осваиваю замечательный RubyMotion, но у меня возникают проблемы с обновлением поля NSManagedObject, мой проект основан на примере приложения Местоположения

Код в location_store.rb имеет создание и удаление...

def add_location
    # Yield a blank, newly created Location entity, then save the model.
    yield NSEntityDescription.insertNewObjectForEntityForName('Location', inManagedObjectContext:@context)
    save
end

def remove_location(location)
    # Delete the given entity, then save the model.
    @context.deleteObject(location)
    save
end

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

def showDetailsForLocation(location)
    @location = location
    navigationItem.title = "%0.3f, %0.3f" % [location.latitude, location.longitude]
end

затем это срабатывает при нажатии кнопки сохранения ...

def saveLocation(sender)

    LocationsStore.shared.update_location(@objectid, "field1updatevalue", "field2updatevalue")
end 

Но я пробовал множество способов взломать это, но не могу найти способ обновить запись в этом методе...

def update_location(location, f1, f2)
    location.f1 = f1
    location.f2 = f2
    save
end

person creativetechnologist    schedule 04.07.2012    source источник
comment
где вы взяли @objectid?   -  person defvol    schedule 25.09.2012


Ответы (2)


Я отказался от попыток самостоятельно перемещаться по NSManagedObject и использовал простую, но работоспособную активную запись типа оболочки от ClarkWare.

person creativetechnologist    schedule 05.07.2012

Похоже, вы не создаете объект для контекста в update_location. Перед сохранением контекста вы должны сгенерировать новый объект в этом контексте или найти его в хранилище.

Попробуйте получить объект из хранилища перед обновлением, а затем сохраните контекст.

person defvol    schedule 25.09.2012