C++ 哪种类型的数组在应用程序关闭/关机时也要存储int值
我正在尝试计算一个用户在我的应用程序中捕获了多少屏幕。不幸的是,我对Objective C还不熟悉,从来没有使用过不同类型的数组,也没有使用过如何在其中存储内容 屏幕截图完成后,我想从我的main.m类调用MLBookMarkDataProvider.m中截图的方法(截图的地方)。我想将int代码存储在一个数组中,该数组在不使用方法/类或app关闭后不会被清除 我该如何做到这一点?我认为这对C语言中更有经验的人来说不是火箭科学,所有的代码示例都非常感谢。问候 main.hC++ 哪种类型的数组在应用程序关闭/关机时也要存储int值,c++,ios,nsuserdefaults,nsnumber,screen-capture,C++,Ios,Nsuserdefaults,Nsnumber,Screen Capture,我正在尝试计算一个用户在我的应用程序中捕获了多少屏幕。不幸的是,我对Objective C还不熟悉,从来没有使用过不同类型的数组,也没有使用过如何在其中存储内容 屏幕截图完成后,我想从我的main.m类调用MLBookMarkDataProvider.m中截图的方法(截图的地方)。我想将int代码存储在一个数组中,该数组在不使用方法/类或app关闭后不会被清除 我该如何做到这一点?我认为这对C语言中更有经验的人来说不是火箭科学,所有的代码示例都非常感谢。问候 main.h int code;
int code;
……
main.m
- (void)viewDidLoad
{
………..
self.bookmarkDataProvider = [[MLBookmarkDataProvider alloc] initWithDelegate:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotTaken) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
}
- (void) screenshotTaken
{
code ++;
[self.bookmarkDataProvider screenshotTaken:code];
}
- (void) screenshotTaken : (int) code
{
// Some code here, the Array(NSUserDefaults) below gets cleared after closing main.m class or shutting down the app :(
NSNumber *number = [NSNumber numberWithInt:code];
[[NSUserDefaults standardUserDefaults] setObject:number forKey:@"ArrayNumber"];
if(Array has more then 5 items… blabla..){
NSLog(@"Print Array:%@",number);
// NSLog(@"code:%@",[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
}
MLBookmarkDataProvider.m
- (void)viewDidLoad
{
………..
self.bookmarkDataProvider = [[MLBookmarkDataProvider alloc] initWithDelegate:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotTaken) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
}
- (void) screenshotTaken
{
code ++;
[self.bookmarkDataProvider screenshotTaken:code];
}
- (void) screenshotTaken : (int) code
{
// Some code here, the Array(NSUserDefaults) below gets cleared after closing main.m class or shutting down the app :(
NSNumber *number = [NSNumber numberWithInt:code];
[[NSUserDefaults standardUserDefaults] setObject:number forKey:@"ArrayNumber"];
if(Array has more then 5 items… blabla..){
NSLog(@"Print Array:%@",number);
// NSLog(@"code:%@",[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
}
即使你的应用程序被关闭/关闭,在应用程序中存储价值的更好方法。请使用.plist文件存储值,并从.plist文件中检索值。它还可以提高应用程序的性能而不会失败。我真的不知道为什么要使用数组来完成这样的任务,我只想在NSUserDefualts中保存一个整数,如下所示
-(void)increaseScreenshotCount{
//this will work even the first time when your key does not exist
//get the value from UserDefaults and increase it ++
NSInteger CurCount = 0 ;
CurCount += [[NSUserDefaults standardUserDefaults] integerForKey:@"ScreenShotCount"];
CurCount++;
[[NSUserDefaults standardUserDefaults] setInteger:CurCount forKey:@"ScreenShotCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Current Screenshot Count %d", [[NSUserDefaults standardUserDefaults] integerForKey:@"ScreenShotCount"]);
}