У меня есть объект NSDictionary
, который содержит пары (ключ, значение) (байт, пользовательский класс), где byte
- typedef unsigned char byte
.NSDictionary с байтом и объектами как значение ключа
Ниже мой код
в Mos6502.h
@interface Mos6502 : NSObject {
@private
Instruction *currentInstruction;
}
@property NSDictionary *instructions;
в Mos6502.m
, в методе init
я заполнил словарь с байтовым (неподписанным символом), который представляет опкод данной инструкции, а значение экземпляр класса инструкции. Как указано ниже
instructions = [NSDictionary dictionaryWithObjectsAndKeys:
0x00, [[BRK alloc] init],
// rest of the instructions
nil];
Где BRK и другие классы инструкций наследуются от базового класса, называемого инструкцией.
В том же файле, но в способе, где мне нужно, чтобы получить текущую инструкцию, следующая строка дает мне ошибку:
currentInstruction = [instructions objectAtKey:[mem readByteAt:(PC++)]];
со следующим сообщением об ошибке,
Implicit conversion of 'byte' (aka 'unsigned char') to 'id' is disallowed with ARC
и когда я пытаюсь поставить вместо [mem readByteAt:(PC++)]
такой номер, как 0x00
У меня больше нет ошибки.
Почему я получаю эту ошибку?