我正在开发一个简单的“基于点”的应用程序。
在设置下,用户设置使用滑块获得“礼物”所需的点数。
-(IBAction) sliderChanged: (id)sender {
UISlider *slider = (UISlider *) sender;
int progressAsInt =(int)(slider.value +0.5);
NSString *newText = [[NSString alloc] initWithFormat:@"%d",progressAsInt];
sliderLabel.text = newText;
[newText release];
这样可以正常工作,但是如何将滑块值存储在我的核心数据模型中,以及如何使我的滑块在视图加载时显示存储的值。
希望你能帮助我:-D嘿gerry3我发现了我的错误。我从未在settingsViewController中设置我的toD-object,其中包含:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription
entityForName:@"ToDo" inManagedObjectContext:_context]];
NSError *error = nil;
NSArray *array = [_context executeFetchRequest:request error:&error];
if (array == nil)
{
// Deal with error...
}
if(array.count > 0){
toDo = [array objectAtIndex:0];
} else { // no one to fetch - generate one
toDo = [NSEntityDescription
insertNewObjectForEntityForName:@"ToDo"
inManagedObjectContext:_context];
[toDo retain];
你的代码就像魅力......
由于 SKOV
答案 0 :(得分:0)
这里的关键是Core Data将数字属性(例如整数,浮点数等)存储为NSNumber对象。
假设您的实体名为Record,它有一个名为'progress'的整数属性。
如果您创建一个名为“record”的Record的托管对象实例,那么您可以像这样设置其进度:
[record setValue:[NSNumber numberWithInteger:progressAsInt] forKey:@"progress"];
当您想使用模型中的值更新视图时(通常在viewWillAppear:
中),您可以获得如下进度:
NSNumber *progressNumber = [record valueForKey:@"progress"];
slider.value = [progressNumber floatValue];
或者,如果您为Record实体生成类文件,则可以执行以下操作:
record.progress = [NSNumber numberWithInteger:progressAsInt];
和
slider.value = [record.progress floatValue];