즐겨 찾기에 추가 기능이 제대로 작동하지 않습니다. "appDidFinishLaunching"의 애플 대리자에서즐겨 찾기에 추가 기능성
, : 가 여기에 내가 설정에 즐겨 찾기 데이터의 배열 및 사전을 사용하고 코드 내 detailViewController에서 다음
delegateFavouritesDictionary = [NSMutableDictionary dictionary];
NSLog(@"Mutable Dictionary: %@", delegateFavouritesDictionary);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Saved.data"];
[delegateFavouritesDictionary writeToFile:filePath atomically: YES];
delegateFavouritesArray = [[NSMutableArray alloc] init];
, 나는이 addToFavourites가 기능 :
if([[addToFavouritesDictionary allKeys] containsObject:ID]) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Saved.data"];
[addToFavouritesDictionary removeObjectForKey:ID];
[addToFavouritesArray removeObject:Name];
[favouritesButton setTitle:@"+ Favourites" forState:(UIControlState)UIControlStateNormal];
[addToFavouritesDictionary writeToFile:filePath atomically: YES];
NSLog(@"New Dictionary: %@", addToFavouritesDictionary);
} else {
[addToFavouritesArray addObject:Name];
NSString *ID = [[NSUserDefaults standardUserDefaults]objectForKey:@"ID"];
[addToFavouritesDictionary setObject:Name forKey:ID];
[favouritesButton setTitle:@"- Favourites" forState:(UIControlState)UIControlStateNormal];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Saved.data"];
[addToFavouritesDictionary writeToFile:filePath atomically: YES];
NSLog(@"Mutable Dictionary: %@", addToFavouritesDictionary);
//[addToFavouritesDictionary release];
}
위의 코드는 응용 프로그램의 실행에서 예상대로 작동, 그것은 사전에 "Saved.data"의 사전로드 내용을 설정 한 후 detailViewController에, 그것은 "저장을로드합니다. 데이터 "파일을 추가하고 de 그 파일에 letes. 내가 겪고있는 문제는 iPhone이 다시 시작되거나 즐겨 찾기 데이터가 모두 사라 졌거나 앱이 충돌하여 다시 열리면 즐겨 찾기에있는 모든 데이터가 사라졌습니다. 기기가 다시 시작되거나 전원이 꺼질 때마다 삭제되지 않고 저장된 데이터를 유지할 수있는 방법이 있습니까?
미리 감사드립니다.
어디서나 파일을 읽지 못하거나 질문에 오자가 있거나 실제로 saved.data 파일을 읽지 않습니까?detailViewController의 –
에서 viewDidLoad 메서드에서 addToFavouritesDictionary를 시작합니다. 해당 코드를 추가하는 것을 잊었습니다. –
그래, 내 대답을 참조하십시오, 나는 당신이 단지 다시 시작할 때마다 귀하의 데이터를 덮어 쓰고 있다고 가정합니다. 어쨌든 내 iPhone이 꺼져있어 내 데이터가 문서 폴더에서 사라지지 않으므로 데이터를 삭제해야하는 이유가 없습니다. –