[encoder encodeValuesOfObjCTypes - что мне здесь поставить? - PullRequest
0 голосов
/ 25 марта 2012

Это то, что я пробовал до сих пор, как предлагали различные сайты:

[encoder encodeValuesOfObjCTypes:@encode(BOOL), self.isInPhotoLibrary];
[encoder encodeValuesOfObjCTypes:"i", self.isInPhotoLibrary];
[encoder encodeValuesOfObjCTypes:(const char *)self.isInPhotoLibrary];

Все эти 3 аварии. Кто-нибудь знает, как это использовать? self.isInPhotoLibrary представляет собой BOOL.

Ответы [ 2 ]

5 голосов
/ 25 марта 2012

Я думаю, что было бы проще использовать метод архивации с ключом :

[encoder encodeBool:[self isInPhotoLibrary] forKey:@"isInPhotoLibrary"];
3 голосов
/ 25 марта 2012

Документация для -encodeValuesOfObjCTypes: гласит:

Аргументы переменной этого метода состоят из одного или нескольких аргументов указателя, каждый из которых указывает буфер, содержащий значение длябыть закодирован.Для каждого кода типа в valueTypes необходимо указать соответствующий аргумент указателя.

Вы передаете значение, а не указатель.Сделайте это вместо:

BOOL value = self.isInPhotoLibrary;
[encoder encodeValuesOfObjCTypes:@encode(BOOL), &value];

Или, поскольку вы кодируете только одно значение:

BOOL value = self.isInPhotoLibrary;
[encoder encodeValueOfObjCType:@encode(BOOL) at:&value];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...