我正在制作iOS游戏,其中包含每个级别的评分系统。在这里,我有一些代码通过使用代理获取NSString
(passedValue1
)。添加到以前保存的NSUserDefaults
赫雷什为代表的代码:.H
#import "ViewController.h"
@interface LevelCompleteLevel1 : UIViewController{
IBOutlet UILabel *label;
ViewController *secondviewData;
}
@property (nonatomic, retain)ViewController*secondviewData;
的.m
ViewController *second = [[ViewController alloc] initWithNibName:nil bundle:nil];
self.secondviewData = second;
secondviewData.passedValue1 = label.text;
[self presentModalViewController:second animated:YES];
在.m
我从一个发送的值
LevelCompleteLevel1
标签目前viewcontroller
另一个view controller
我送的值称为passedValue1
一旦我已将我需要显示和保存在我的ViewController
ViewController
.H
@interface ViewController : UIViewController{
IBOutlet UILabel *label;
NSString *passedValue1;
}
@property (nonatomic, retain)NSString *passedValue1;
@end
值.m
首先我... @synthesize passedValue1;
然后我添加代码来获得的价值在我viewDidLoad
并在UILabel
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib
NSString *[email protected]"labelKey";
// Do any additional setup after loading the view, typically from a nib
if(passedValue1){
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSObject * object = [prefs objectForKey:key];
if(object != nil){
NSUserDefaults *defults = [NSUserDefaults standardUserDefaults];
[defults setObject:passedValue1 forKey:key];
[defults synchronize];
}
else{
NSUserDefaults *defults = [NSUserDefaults standardUserDefaults];
NSInteger readScore=[[[NSUserDefaults standardUserDefaults] objectForKey:key] integerValue];
NSInteger newValue=readScore+[passedValue1 integerValue];
[defults setObject:[NSString stringWithFormat:@"%d",newValue] forKey:key];
[defults synchronize];
}
}
label.text = [[NSUserDefaults standardUserDefaults]objectForKey:key];
}
显示我的价值,我一旦显示的值,然后我使用NSUserDefault
将其保存到标签中。但是,一旦我有重播我的比赛,还有一个分值,我想新的passedValue1
值添加到当前保存值...
例如:
说,我玩我的水平,我得到10分。价值然后保存,我重新玩我的水平。然后,我想把保存的价值加到我刚刚得分的价值上。所以这就是说,我得分的第二个值是20.我然后会喜欢我的代码将它们加在一起,并给我一个值30.
任何人都可以帮助,因为我使用的代码不正确地执行该功能我想要做的是添加上一个和当前传递的值。
在此先感谢。使用
编辑 荫验证码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib
NSString *[email protected]"labelKey";
// Do any additional setup after loading the view, typically from a nib
if(passedValue1){
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSObject * object = [prefs objectForKey:key];
if(object != nil){
NSUserDefaults *defults = [NSUserDefaults standardUserDefaults];
[defults setObject:passedValue1 forKey:key];
[defults synchronize];
}
else{
NSUserDefaults *defults = [NSUserDefaults standardUserDefaults];
NSInteger readScore=[[[NSUserDefaults standardUserDefaults] objectForKey:key] integerValue];
NSInteger newValue=readScore+[passedValue1 integerValue];
[defults setValue:[NSString stringWithFormat:@"%d",newValue] forKey:key];
[defults synchronize];
}
}
label.text = [[NSUserDefaults standardUserDefaults]objectForKey:key];
}
这是为什么不工作,标签的显示值是最初passedValue1?
尝试。 – Girish 2013-04-05 12:30:01
什么问题你现在得到这个值secondviewData.passedValue1 = label.text; (passedValue1)r不是? – Ganapathy 2013-04-05 12:40:04
你能检查我的编辑并告诉我我做错了什么。谢谢 – TheCODER999 2013-04-05 18:15:07