소셜 미디어 IOS 앱에서 자바 스크립트 객체 표기법을 사용하는 방법 - 인형

IOS 앱에서 자바 스크립트 객체 표기법을 사용하는 방법 - 인형

비디오: Getting Started with the Firebase Realtime Database on the Web, Part 1 - Firecasts 2024

비디오: Getting Started with the Firebase Realtime Database on the Web, Part 1 - Firecasts 2024
Anonim

JavaScript 객체 표기법 (JSON)은 iOS 앱의 데이터 표현 측면에서 사실상 표준이되었습니다. JSON을 사용하여 웹에서 데이터를 전송하고 수명이 긴 데이터를 저장 및 검색하는 형식으로 사용할 수 있습니다. JSON은 사람이 읽을 수 있고 기계가 이해하기 쉽습니다. JSON의 데이터는 두 가지 구조 중 하나가 될 수 있습니다. 정렬되지 않은 이름 - 값 쌍 집합을 포함하는 객체입니다. 각 name-value는 객체의 속성에 해당합니다. 속성이 계층 적으로 표현되는 경우 각 이름 - 값 쌍을 중첩 할 수 있습니다.

  • 값의 정렬 된 배열. 배열의 각 값은 스칼라 (부울, 문자열 또는 숫자 값), 객체 또는 배열 일 수 있습니다.
  • Tic-Tac-Toe에서 JSON은 게임의 상태를 나타냅니다. 이 상태는 다음과 같이 구성됩니다.

현재 플레이어 (플레이어 1 또는 플레이어 2)는 정수로 표시됩니다 (플레이어 1의 경우 0, 플레이어 2의 경우 1).

  • 게임의 상태 - 그것이 활성이든 완료이든 상관없이; 그것이 완료 되었든, 그것이이기 든 당겨 졌든간에; 그리고 원하면 누구에 의해.

  • 그리드의 상태 - 즉, 어떤 심볼 그리드의 각 사각형에 나타납니다. 기호는 각각 공백, X 및 O를 나타내는 정수 값 0, 1 및 2로 표시됩니다.

    현재 기호 (다음 이동시에 재생 될 기호). 여기에서 (그리고 예제를 변경하기 위해) 기호를 문자열 "X"또는 문자열 "O"또는 공백 ("")으로 나타냅니다.

  • 재생 횟수 (게임의 현재 지점으로 이동 한 횟수)는 정수로 표시됩니다.

    이 코드에서는 활성 Tic-Tac-Toe 게임에 해당하는 JSON 객체를 보여줍니다.
  • { "TTTGameKeyCurrentPlayer": 0, "TTTGameKeyState": 0, "TTTGameKeyGridState": "2, 1, 2 JSON은 배열, 구조체 및 객체와 같은 사용 가능한 데이터 구조에 쉽게 매핑됩니다. ","TTTGameKeyCurrentSymbol ":"X ","TTTGameKeyPlaycount ": 8} 거의 모든 프로그래밍 언어. JSON의 객체 형식은 프로그래밍 언어 객체 또는 구조체에 쉽게 매핑되는 반면 JSON의 배열 형식은 배열, 벡터, 목록 또는 시퀀스에 매핑 될 수 있습니다. 기본적으로 객체의 정렬 된 컬렉션을 보유 할 수있는 데이터 구조가 무엇이든간에. Tic-Tac-Toe에서는 NSDictionary 객체가 중첩 된 이름 값 쌍으로 구성되기 때문에 게임 상태에 해당하는 JSON 객체가 NSDictionary에 매핑됩니다.결과적으로 게임의 상태를 저장해야하는 경우 상태를 NSDictionary 객체로 가져온 다음 JSON 문자열로 변환합니다.

게임 상태를 가져올 때 JSON 데이터를 읽고 NSDictionary 개체로 변환 한 다음 NSDictionary를 사용하여 저장된 상태로 게임을 복원합니다.

다음 예제에서는 사전 세션 객체에서 JSON으로, JSON 데이터 객체에서 문자열로 변환하는 방법을 보여줍니다 (Game 세션보기 컨트롤러 - 파일 TTTGameSessionViewController. m 및.h의 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]; NSJSONSerialization 클래스의 dataWithJSONObject 메쏘드에 중요한 메소드가 있습니다.

동일한보기 컨트롤러에서 restoreGame 메소드의 역순으로 수행되는 작업 (즉, JSON 문자열에서 NSDictionary로)을 볼 수 있습니다.

- (IBAction) restoreGame: (id) sender {NSLog 경기"); … 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]; [gameView redraw];}

핵심 메소드는 JSON 데이터에서 Objective-C NSDictionary를 만드는 것과 반대의 작업을 수행하는 JSONObjectWithData입니다.


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에서 물과 얼음 효과를 창조하기 - 더미

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