NSUserDefaults에 문자열을 저장하시겠습니까?
에 문자열을 저장하는 방법NSUserDefaults
?
NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];
나중에 돌려받기 위해
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"preferenceName"];
더 정확히 말하면
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"timestamps"];
[standardUserDefaults synchronize];
}
}
Swift에서도 같은 작업을 수행할 수 있습니다.
var valueToSave = "someValue"
NSUserDefaults.standardUserDefaults().setObject(valueToSave, forKey: "preferenceName")
나중에 돌려받으려면
if let savedValue = NSUserDefaults.standardUserDefaults().stringForKey("preferenceName") {
// Do something with savedValue
}
Swift 3.0의 경우
var valueToSave = "someValue"
UserDefaults.standard.set(valueToSave, forKey: "preferenceName")
if let savedValue = UserDefaults.standard.string(forKey: "preferenceName") {
}
다음과 같은 경우:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
다음으로 검색:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
Apple의 NSUserDefaults 클래스 레퍼런스 및 이 튜토리얼을 참조하십시오: iPhone 프로그래밍 튜토리얼 – NSUserDefaults를 사용한 데이터 저장/검색
그렇지 않으면 항상 작동하지 않을 수 있으므로 이 문장을 잊지 마십시오.
[standardUserDefaults synchronize];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];
// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize];
취득중
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
[[NSUserDefaults standardUserDefaults] setValue:aString forKey:aKey]
같은 키로 저장 및 읽지 않는 버그를 피하기 위해 키에 상수를 사용하는 것도 좋은 방법입니다.
NSString* const TIME_STAMPS_KEY = @"TIME_STAMPS_KEY";
Swift5 및 Xcode 10.2의 경우
//Save
UserDefaults.standard.set(true, forKey: "Key1") //Bool
UserDefaults.standard.set(1, forKey: "Key2") //Integer
UserDefaults.standard.set("This is my string", forKey: "Key3") //String
UserDefaults.standard.synchronize()
//Retrive
UserDefaults.standard.bool(forKey: "Key1")
UserDefaults.standard.integer(forKey: "Key2")
UserDefaults.standard.string(forKey: "Key3")
//Remove
UserDefaults.standard.removeObject(forKey: "Key3")
주의: 텍스트 데이터(String, Array, Dictionary 등)를 UserDefaults에 저장합니다.
이미지를 UserDefaults에 저장하지 마십시오. 권장되지 않습니다(로컬 디렉토리에 이미지 저장).
-(void)saveToUserDefaults:(NSString*)string_to_store keys:(NSString *)key_for_the_String
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:string_to_store forKey:key_for_the_String];
[standardUserDefaults synchronize];
}
}
전화 번호:
[self saveToUserDefaults:@"string_to_store" : @"key_for_the_string"];
다음을 사용하여 문자열을 가져옵니다.
NSString * stored_string = [[NSUserDefaults standardUserDefaults] stringforkey:key_for_the_String]
첫 번째 표시
{
NSMutableArray *array; }
- (void)viewDidLoad {
[super viewDidLoad];
array = [[NSMutableArray alloc]init];
array = [[NSUserDefaults standardUserDefaults]objectForKey:@"userlist"];
NSLog(@"%lu",(unsigned long)array.count);
if (array>0)
{
for (int i=0; i<array.count; i++)
{
NSDictionary *dict1 = @{@"Username":[[array valueForKey:@"Username"] objectAtIndex:i],@"Mobilenumber":[[array valueForKey:@"Mobilenumber"] objectAtIndex:i],@"Firstname":[[array valueForKey:@"Firstname"] objectAtIndex:i],@"Lastname":[[array valueForKey:@"Lastname"] objectAtIndex:i],@"dob":[[array valueForKey:@"dob"] objectAtIndex:i],@"image":[[array valueForKey:@"image"] objectAtIndex:i]};
NSLog(@"%@",dict1);
NSArray *array1 = [[NSArray alloc]initWithObjects:dict1, nil];
[[NSUserDefaults standardUserDefaults] setObject:array1 forKey:@"UserList"];
}
}
}
이미지 피커
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imaGe.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
(IBAtion) submitBton : (id) 송신자 {
NSMutableArray *array2 = [[NSMutableArray alloc]initWithArray: [[NSUserDefaults standardUserDefaults]objectForKey: @"userlist"]]; UIImage *ima = _imaGe.image; NSData *imagedata = UIImageJPEGRepresentation(ima,100); NSDictionary *dict = @{@"Username":_userTxt.text,@"Lastname":_lastTxt.text,@"Firstname":_firstTxt.text,@"Mobilenumber":_mobTxt.text,@"dob":_dobTxt.text,@"image":imagedata}; [array2 addObject:dict]; [[NSUserDefaults standardUserDefaults]setObject:array2 forKey:@"userlist"]; NSLog(@"%@",array2); [self performSegueWithIdentifier:@"second" sender:self]; }
(IBAtion) chooseImg:(id) 송신자 {
[UIImagePickerController * ] = [[UIImagePickerController
allocate] init]; picker.picker = self; picker.allowsEditing = YES; picker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController: picker 애니메이션:○ 완료:특수한 순서];}
두 번째 보기 {NSMutable Array *arr; }
- (void)viewDidLoad {
[super viewDidLoad];
arr =[[NSMutableArray alloc]init];
arr = [[NSUserDefaults standardUserDefaults]objectForKey:@"userlist"]; }
#pragma mark- TableView DataSource
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1; }
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return arr.count; }
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellId = @"tablecell";
TableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellId];
cell.userLbl.text =[[arr valueForKey:@"username"] objectAtIndex:indexPath.row];
cell.ageLbl.text =[[arr valueForKey:@"dob"] objectAtIndex:indexPath.row];
cell.profileImg.image =[UIImage imageNamed:[[arr valueForKey:@"image"] objectAtIndex:indexPath.row]];
return cell; }
저장할 경우 다음을 사용합니다.
[[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"KTerminated"];
[[NSUserDefaults standardUserDefaults]synchronize];
검색의 경우 다음을 사용합니다.
[[[NSUserDefaults standardUserDefaults]stringForKey:@"KTerminated"] isEqualToString:@"YES"];
Swift 3 업데이트
func setObject(value:AnyObject ,key:String)
{
let pref = UserDefaults.standard
pref.set(value, forKey: key)
pref.synchronize()
}
func getObject(key:String) -> AnyObject
{
let pref = UserDefaults.standard
return pref.object(forKey: key)! as AnyObject
}
Swift 4.0.3 Xcode 9의 경우
============set Data in UserDefaults =========
UserDefaults.standard.set(userName, forKey: "userName")
UserDefaults.standard.synchronize()
============Get Data in UserDefaults =========
let userName = UserDefaults.standard.string(forKey: "userName")
print(userName ?? "Gera")
userNameTextField.text = ""+userName!
Swift 업데이트 내용:
let userID = "BOB"
사용자 기본값 선언:
let defaults = UserDefaults.standard
defaults.setValue(userID, forKey: "userID")
또, 다음과 같은 것이 있습니다.
let userID = defaults.object(forKey: "userID")
여기에서는 Swift의 경우 Preferences에서 값을 저장 및 검색하는 두 가지 함수를 만들었습니다.
이것은 당신에게 충분한 도움이 될 것입니다.
// 객체 저장용
static func setObject(value:AnyObject ,key:String)
{
let pref = NSUserDefaults.standardUserDefaults()
pref.setObject(value, forKey: key)
pref.synchronize()
}
static func getObject(key:String) -> AnyObject
{
let pref = NSUserDefaults.standardUserDefaults()
return pref.objectForKey(key)!
}
언급URL : https://stackoverflow.com/questions/3074483/save-string-to-the-nsuserdefaults
'programing' 카테고리의 다른 글
지정된 값을 포함하는 열의 VBA 셀 수 (0) | 2023.04.11 |
---|---|
다른 블록을 시작하기 전에 두 개의 비동기 블록이 실행될 때까지 기다리는 중 (0) | 2023.04.11 |
\d는 grep의 기본 표현식에서는 지원되지 않습니까? (0) | 2023.04.11 |
MongoDB, 어레이에서 객체 삭제 (0) | 2023.04.06 |
Oracle이 제약 조건을 발견하다 (0) | 2023.04.06 |