我正在快速使用精彩的RubyMotion,但无法更新NSManagedObject字段,我的项目基于示例应用Locations
locations_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
答案 0 :(得分:0)
我试图自己导航NSManagedObject并使用基本但可行的activerecord like wrapper by ClarkWare
答案 1 :(得分:0)
看起来您没有在update_location中为上下文创建对象。在保存上下文之前,您应该在该上下文中生成一个新对象,或者在商店中找到一个。
尝试在更新前从商店中提取对象,然后保存上下文。