IOS 는 NSUserDefault 를 사용 하여 인터페이스 전송 값 과 데이터 저장 을 실현 합 니 다.

IOS 는 NSUserDefault 를 사용 하여 인터페이스 전송 값 과 데이터 저장 을 실현 합 니 다.
시스템 단일 예 NSUserDefault 의 전송 값
첫 번 째 화면 에서

SecondViewController *secondvc = [SecondViewController new];
//       NSUserDefaults     
 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//  
[defaults setObject:_firsttextfield.text forKey:@"firstTGP"];
  NSLog(@"%@",defaults);

  [self.navigationController pushViewController:secondvc animated:YES];

제2 인터페이스 중

//            
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//    
NSString *str = [defaults objectForKey:@"firstTGP"];
//     
_secondlabel.text = str;
단일 사례 에 대해 서 는 먼저 자신 이 다시 쓴 단일 사례 의 값 을 전달 하 는 방법 을 말씀 드 리 겠 습 니 다.자신 이 단일 사례 를 다시 쓰 는 방법 은 두 페이지 의 값 을 실현 하 는 것 입 니 다.모두 주어진 죽은 값 입 니 다.단일 사례 를 다시 쓰 는 이 유 는 프로그램 이 실행 되 는 동안 그 가 메모리 에 존재 하 기 를 바 라 는 것 입 니 다.수시로 데 이 터 를 읽 을 수 있 기 때 문 입 니 다.
우선 단일 클래스(DataHandle),두 가지 방법 을 만 듭 니 다.

#pragma mark---     :
//             :                  
+(instancetype)sharedDatahandle{
//      (     )
  @synchronized(self) {
    if (!dataHandle) {
      dataHandle = [[DataHandle alloc]init];
    }
  }

  return dataHandle;
}


#pragma mark---     :

+(instancetype)sharedDatahandle{
  static DataHandle *dataHandle = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    dataHandle = [[DataHandle alloc]init];
  });

  return dataHandle;
}

바로 뒤에서 예 를 들 면,사실 뒤에서 전해 지 는 것 은 같은 이치 이다.
두 번 째 페이지 중

 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStylePlain target:self action:@selector(backAC)];
  DataHandle *handle = [DataHandle sharedDatahandle];
  handle.title = @"  ";
- (void)backAC{
  [self.navigationController popViewControllerAnimated:YES];

}

첫 페이지

- (void)viewWillAppear:(BOOL)animated{//           
  //  (      ViewDidLoad )
  DataHandle *handle = [DataHandle sharedDatahandle];
  self.firstLabel.text = handle.title;
}
헤헤,주제 에서 벗 어 났 어.다음은 NSUserDefault,이어서 NSUserDefault 의 데이터 저장 소.
NSUserDefault 사용자 정의 대상 을 사용 할 때 어떤 종류의 데 이 터 를 저장 할 수 있 는 지 알 아야 합 니 다.
1:NSNumber(NSInteger,float,double)
2:NSString,NSArray,NSDictionary,BOOL

  //  NSUserDefault    
  //1:        
  NSArray *array = @[@"11", @"22",@"33"];
  //  NSUserDefault  
  NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
  [user setObject:array forKey:@"userArray"];
  NSLog(@"%@",user);

  //  
  NSArray *newarr = [user objectForKey:@"userArray"];
  NSLog(@"%@",newarr);


#warning   :    Key         ,      Key    
// NSUserDefaults            (       ,        bug),  ,          NSMutableArray   ,             (NSArray)     NSUserDefaults  
NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"123",@"234",@"456", nil];
NSArray *array1 = [NSArray arrayWithArray:mutableArray];
NSUserDefaults *user2 = [NSUserDefaults standardUserDefaults];
[user2 setObject:array1 forKey:@"              "];

//          ,   NSUserDefaults           
/*--------------      --------------*/
//    NSMutableArray *mutablearray = [user objectForKey:@"              "];
//  //    ,mutableArray           ,                   bug
//  NSLog(@"%@",mutablearray);

/*------     --------*/
NSMutableArray *mutablearray = [NSMutableArray arrayWithArray:[user2 objectForKey:@"              "]];
NSLog(@"%@",mutablearray);

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기