Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 哪种类型的数组在应用程序关闭/关机时也要存储int值_C++_Ios_Nsuserdefaults_Nsnumber_Screen Capture - Fatal编程技术网

C++ 哪种类型的数组在应用程序关闭/关机时也要存储int值

C++ 哪种类型的数组在应用程序关闭/关机时也要存储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;

我正在尝试计算一个用户在我的应用程序中捕获了多少屏幕。不幸的是,我对Objective C还不熟悉,从来没有使用过不同类型的数组,也没有使用过如何在其中存储内容

屏幕截图完成后,我想从我的main.m类调用MLBookMarkDataProvider.m中截图的方法(截图的地方)。我想将int代码存储在一个数组中,该数组在不使用方法/类或app关闭后不会被清除

我该如何做到这一点?我认为这对C语言中更有经验的人来说不是火箭科学,所有的代码示例都非常感谢。问候

main.h

 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"]);
}