Вопрос

У меня есть файл plist, который содержит массив словарей. Вот один из них:

Фред словарь
Имя Фред
Ismale [Коробка проверяется

Так что теперь я инициализирую свой объект своего человека с словарем, я читаю из файла Plist:

 -(id) initWithDictionary: (NSDictionary *) dictionary {
    if (self = [super init])
    self.name = [dictionary valueForKey: @"Name"];
    self.isMale = ????
  }

Как я заканчиваю вышеуказанный код, так что Self.ismale установлен на да, если коробка проверяется в файле plist, и нет, если это не так. Предпочтительно также устанавливается нет, если в словаре нет ключей Ismale.

Это было полезно?

Решение

Значения BOOL обычно хранятся в контейнерах OBJ-C, завернутые в объект NSNUMBE. Если это так в вашем случае, вы можете получить значение BOOL, используя:

self.isMale = [[dictionary objectForKey:@"isMale"] boolValue];

Другие советы

Владимир прав, я просто собираюсь догонять и сказать, что полезно проверять, что эти значения из Plist существуют также, и если не установите его на значение по умолчанию.

Что-то вроде:

id isMale = [dictionary valueForKey:@"isMale"];
self.isMale = isMale ? [isMale boolValue] : NO;

Которые проверяют, существует ли значение для ключа «ismale» в словаре. Если это происходит, то он получает у него выгоду из него. Если это не то, то он устанавливает самоустранение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top