如何保存评级控制值?

时间:2015-07-27 23:39:53

标签: ios objective-c controls nsuserdefaults

我正在玩DYRateView ....一个控件在我试过的一长串控件列表的末尾。可在此处找到:https://github.com/dyang/DYRateView

我尝试的所有控件的问题是,一旦更改后我似乎无法保存评级。我正在使用NSUserDefaults,并尝试将其放置在各种位置,包括值的更改位置,视图的设置位置,在viewDillLoad中,在viewWillAppear中,在源代码本身内。保存这个值只是让我感到沮丧。我将不胜感激任何帮助。为了了解它应该如何工作,我刚刚使用DYRateView附带的示例代码。以下是相关代码:

for i in list_1:
  if i in list_2:

感谢任何花时间的人!

2 个答案:

答案 0 :(得分:1)

您正在尝试将NSNumber保存为NSInteger。您应该[[NSUserDefaults standardUserDefaults] setInteger:[rate integerValue] forKey:@"rating"];或使用- setObject:forKey:,因为NSNumber是一个对象,而不是标量。

答案 1 :(得分:0)

您获得rating valuea at:[[NSUserDefaults standardUserDefaults] integerForKey:@"rating"];但是您使用此值做了什么?

我认为您需要获取此值并设置为DYRateView。所以:

  1. 创建DYRateView@property DYRateView * rateView
  2. 的属性
  3. 将其设置为setUpEditableRateViewself.rateView = [[DYRateView alloc] initWithFrame:CGRectMake(0, 40, self.view.bounds.size.width, 20) fullStar:[UIImage imageNamed:@"StarFullLarge.png"] emptyStar:[UIImage imageNamed:@"StarEmptyLarge.png"]];
  4. 更新self.rateView(将其添加到setUpEditableRateView末尾):rateView.rate = [[NSUserDefaults standardUserDefaults] integerForKey:@"rating"]