소셜 미디어 파일을 사용하여 IOS 응용 프로그램의 데이터 저장 방법 - iOS 응용 프로그램의 더미

파일을 사용하여 IOS 응용 프로그램의 데이터 저장 방법 - iOS 응용 프로그램의 더미

비디오: 4강. 데이터 저장 및 관리 앱만들기 [앱개발, DB, 데이터베이스] 2024

비디오: 4강. 데이터 저장 및 관리 앱만들기 [앱개발, DB, 데이터베이스] 2024
Anonim

iOS 앱에서 파일은 활성 게임의 상태를 저장하고 복원하는 수단으로 사용됩니다. 어떤 언어 (C, C ++, Java, C #, 당신이 그것을 지칭)로 프로그래밍을했다면 파일을 사용하여 데이터를 읽거나 데이터를 쓰게됩니다. Objective-C는 iOS의 파일들과 함께 작업 할 수있게합니다. iOS의 파일은 디렉토리로 구성됩니다.

각 앱은 앱이있는 고유 한 디렉토리를 가지며 데이터를 저장할 수 있습니다. 이 디렉토리를 앱의 샌드 박스라고합니다.

앱이 샌드 박스 외부에서 파일에 액세스하거나 파일을 만들 수 없습니다. 앱이 사용자의 연락처 나 음악을 사용해야하는 경우 시스템은 앱의 샌드 박스 외부에있는 데이터 저장소를 읽거나 수정하는 데 필요한 파일 관련 작업을 허용해야합니다.

이 샌드 박스 디렉토리는 일련의 하위 디렉토리로 구성됩니다. Apple은 다음과 같이 각 서브 디렉토리를 사용해야하는 방법을 지정합니다.

  • << 앱 이름은 >>입니다. app 디렉토리는 앱의 실행 파일과 번들에있는 모든 파일 (예: Tic-Tac-Toe의 X 및 O 이미지)이있는 곳입니다. 문서 디렉토리에는 사용자가 만든 문서 나 콘텐츠와 같이 앱에서 다시 만들 수없는 데이터가 저장됩니다. Tic-Tac-Toe 앱이 게임을 저장하고 SQLite 파일을 보관하는 디렉토리입니다. iTunes는이 디렉토리를 백업하므로 장치를 Mac에 연결하면 여기의 데이터가 저장됩니다.

  • 문서 디렉토리 내의 Inbox 디렉토리는 특별한 의미가 있습니다. 이 디렉토리는

    다른
  • 앱이 앱을 열 것을 요청하는 파일을 저장합니다. 예를 들어 Mail 프로그램은이 디렉토리에 앱과 관련된 전자 메일 첨부 파일을 저장합니다. 앱은이 디렉토리의 파일을 읽고 삭제할 수 있지만 새 파일을 만들거나 기존 파일에 쓸 수는 없습니다. 라이브러리 디렉토리는 사용자 데이터 파일이 아니지만 백업해야하는 파일에 사용됩니다. Caches라는 하위 디렉토리 (특히 앱이 일시적으로 빠른 액세스를 위해 저장하려는 데이터 용)를 제외하고 여기에있는 파일은 iTunes에서 백업됩니다. tmp 하위 디렉토리는 앱 실행 사이에 유지할 필요가없는 임시 데이터를 저장합니다. 더 이상 필요하지 않으면 앱에서이 디렉토리의 파일을 삭제해야합니다. 앱이 실행 중이 아니거나 디스크 공간이 부족할 때 시스템에서이 디렉토리의 느린 파일을 제거 할 수도 있습니다. 이 디렉토리의 내용은

  • 백업되지 않았습니다.

  • 이제 Tic-Tac-Toe에서 파일을 쓰고 읽는 방법을 보여주는 간단한 예제를 살펴보십시오. 이 예제에서는 파일을 사용하여 게임의 상태를 저장하고 복원합니다. 사용자가 게임 저장을 터치하면 현재 게임 상태가 SavedGames 파일에 저장됩니다. 데이터를 응용 프로그램의 샌드 박스에있는 Documents 디렉토리에 저장합니다 (이 파일의 경로는 TTTGameSessionViewController 파일의 상수 TTTGAMESESSIONSAVEDFILEPATH로 #define을 사용하여 설정되었습니다). 사용자가 게임을 끝내지 않고 종료하면 게임 복원 화면을 선택하여 게임 세션 화면으로 돌아가 저장된 게임으로 돌아갈 수 있습니다. 이제 일부 코드가 있습니다. 다음 코드는 saveGame을 보여줍니다:

- (IBAction) saveGame: (id) sender {NSDictionary * savedGameDictionary = [activeGame toDictionary]; NSError * 오류; NSData * jsonData = [NSJSONSerialization dataWithJSONObject: savedGameDictionary 옵션: NSJSONWritingPrettyPrinted 오류: & 오류]; NSString * savedGameString = [[NSString alloc] initWithData: jsonData 인코딩: NSUTF8StringEncoding]; NSString * savedGamesFilePath = [NSHomeDirectory () stringByAppendingPathComponent: @TTTGAMESESSIONSAVEDFILEPATH]; [savedGameString writeToFile: savedGamesFilePath atomic: YES encoding: NSUTF8StringEncoding 오류: NULL];}

파일에 쓰기가 쉽습니다. 방금 NSHomeDirectory 함수를 호출하여 얻을 수있는 응용 프로그램의 홈 디렉토리를 나타내는 객체에서 stringByAppendingPathComponent 메소드를 사용하여 파일의 경로 이름을 작성합니다. 그런 다음 [savedGameString writeToFile: savedGamesFilePath …] 실제 쓰기를 수행합니다.

파일 읽기는 간단합니다. restoreGame의 코드는 다음과 같습니다.

- (IBAction) restoreGame: (id) sender {NSString * savedGamesFilePath = [NSHomeDirectory () stringByAppendingPathComponent: @TTTGAMESESSIONSAVEDFILEPATH]; NSString * savedGameString = [NSString stringWithContentsOfFile: savedGamesFilePath 인코딩: NSUTF8StringEncoding 오류: NULL]; NSError * restoreError = nil; NSMutableDictionary * savedDictionary = [NSJSONSerialization JSONObjectWithData: [savedGameString dataUsingEncoding: NSUTF8StringEncoding] 옵션: NSJSONReadingMutableContainers 오류: & restoreError]; activeGame = [[TTTGame alloc] initFromDictionary: savedDictionary]; TTTGameGrid * gameGrid = [활성 게임 getGameGrid]; if (! [activeGame isActive]) [boardView disableInput]; [boardView setGrid: gameGrid];

NSHomeDirectory 함수를 사용하여 홈 디렉토리 객체를 가져온 다음이 객체의 stringByAppendingPathComponent 메소드를 사용하여 문자열을 만드는 방법을 통해 파일 경로를 생성하는 방법을 이미 살펴 보았습니다. 다음으로 [NSString stringWithContentsOfFile: savedGamesFilePath …]를 사용하여 전체 파일을 문자열로 읽은 다음 필요에 따라 문자열을 자유롭게 처리 할 수 ​​있습니다.

파일을 사용하여 IOS 응용 프로그램의 데이터 저장 방법 - iOS 응용 프로그램의 더미

편집자의 선택

계획하기 - 인형

계획하기 - 인형

학습 계획 PHR 또는 SPHR 시험을 준비하는 데 사용할 수있는 도구입니다. 따라서 귀하의 학습 계획이 귀하의 필요에 맞게 이루어지기를 바랍니다. 고려해야 할 사항은 시험 날짜, 공부에 바칠 수있는 시간, 귀하의 구체적인 강점 및 목표를 포함해야합니다.

PHR / SPHR 시험을 치러야합니까? - 인형

PHR / SPHR 시험을 치러야합니까? - 인형

일부 유명한 이론가들은 시험을 치러야하거나 마지막 순간 (시험 전주 또는 밤)까지 공부를 연기하는 것은 쓸모 없다고 말합니다. 단기 기억력 증가는 종종 다른 곳에 정보가 손실되는 것을 희생합니다. 왜냐하면 심야 학습이 정상적인 수면 패턴을 위반하는 경우 특히 그렇습니다. 왜냐하면 ...

편집자의 선택

Squarespace에서 웹 사이트의 색상을 변경하는 방법 - 인형

Squarespace에서 웹 사이트의 색상을 변경하는 방법 - 인형

디자인 응용 프로그램을 사용하면 컬러 휠에서 색상을 선택할 수 있으므로 Squarespace의 스타일 편집기에서 색상을 선택하면 집에서 편안하게 느낄 수 있습니다. 그러나 컬러 휠을 한번도 본 적이 없다면 사용하기 쉽기 때문에 걱정하지 마십시오. 바퀴에서 색상을 선택하는 방법 색상을 변경하려면 ...

Squarespace에서 적절한 크기와 가치를 선택하는 방법 - 인형

Squarespace에서 적절한 크기와 가치를 선택하는 방법 - 인형

귀하의 웹 사이트의 너비와 Squarespace의 텍스트 및 이미지의 크기에 따라 작업 할 무제한 캔버스가있는 것처럼 느낄 수 있습니다. 어떤면에서 이것이 사실이지만, Squarespace는 웹 사이트의 경계를 기본 크기로 설정하는 좋은 일을합니다.

Squarespace에서 상점 설정을 조정하는 방법 - 인형

Squarespace에서 상점 설정을 조정하는 방법 - 인형

사이트 관리자 → 상거래 → 점포 설정으로 이동하면 화면 상단에 상점이 작동하지 않음을 나타내는 큰 노란색 상자가 나타납니다. 스토어를 판매하려면 스토어를 사이트에서 지불을 수락하는 데 사용되는 지불 처리 서비스 인 Stripe에 연결해야합니다. ...

편집자의 선택

이 코드 및 Minecraft - 더미

이 코드 및 Minecraft - 더미

로 무작위 인 경우 > 은 임의로 지정되며 Minecraft에서 코드를 작성할 때 임의의 정수를 사용하여 코드는 임의의 방식으로 동작합니다. 정수는 숫자입니다. LearnToMod의 임의의 정수 수학 블록은 코드가 실행될 때마다 두 숫자 (예 : 1과 10) 사이의 임의의 숫자를 선택합니다. Minecraft에서 정수 사용하기. The ...

Minecraft Minigame - dummy

Minecraft Minigame - dummy

를 디자인하면 게임을 디자인해야합니다. Gameplay Loop는 게임을 재미 있고 도전적이며 완벽하게 진행할 수있는 간단한 과정입니다. Gameplay Loop에는 네 부분으로 구성되어 있습니다. 시작 : 기본 장면을 만듭니다. 목표 : 이기기위한 방법을 추가하고 ...

Minecraft에서 물과 얼음 효과를 창조하기 - 더미

Minecraft에서 물과 얼음 효과를 창조하기 - 더미

일부 실제 물리학이 게임 내에서 작동한다는 것입니다. 예를 들어, 물을 가지고 얼음을 넣으면 얼어 붙습니다! 좋아요, 현실 세계에서 얼음을 첨가해도 물이 얼지 않을 수도 있지만 더 추워집니다. 당신은 이것을 확인하실 수 있습니다 ...