Usando JSON para ler dados de nível de jogo no iOS

Quero usar o JSON para armazenar dados sobre o meu jogo para serem lidos no meu código Objective-C.

Portanto, meu arquivo TwinstonesBoardModel.m possui os seguintes métodos (que são os primeiros a serem chamados quando o jogo inicia, a fim de definir as posições dos objetos no tabuleiro). Não sei por que, mas divido minhas inicializações de objetos em vários métodos para maior clareza.

    // sets the board positions for the stones
    - (void)setToInitialStateMain
    {
        // clear board so each level-load is free of previous data
        [super clearBoard];

        // set the state of two stone objects and their positions
        [super setCellState:BoardCellStateStoneOne forColumn:0 andRow:0];
        [super setCellState:BoardCellStateStoneTwo forColumn:2 andRow:3];
    }

    - (void)setToInitialStateHorizontal
    {
        [super clearBoard];

        [super setHBarCellState:HorizontalState forHBarCol:0 andHBarRow:1];
    }

E eu tenho 3 métodos extras para usos semelhantes, como acima, apenas definindo posições. O que eu quero fazer é fornecer 100 níveis de posições e estados em um arquivo JSON para serem lidos com base na seleção de nível. Portanto, se eu selecionar o nível 54, as funções acima serão chamadas e as posições e estados do nível 54 do arquivo JSON serão aplicados.

Meus estados são:

    typedef NS_ENUM(NSUInteger, BoardCellState) {
        BoardCellStateEmpty = 0,
        BoardCellStateStoneOne = 1,
        BoardCellStateStoneTwo = 2,
        BoardCellStateTarget = 3,
        HorizontalState = 4,
        HorizontalStateEmpty = 5,
        GhostHorizontalState = 6,
        VerticalState = 7,
        VerticalStateEmpty = 8,
        GhostVerticalState = 9,
        IntersectorState = 10
    };

E eu estou lidando com valores posicionais 0-4.

Como eu faria isso? Eu sou muito novo na leitura de níveis de um arquivo externo. Eu poderia codificar todas as posições do jogo, mas isso levaria uma quantidade enorme de tempo e certamente seria muito ineficiente.

questionAnswers(0)

yourAnswerToTheQuestion