Как проверить элементы в файле plist - какао? - PullRequest
0 голосов
/ 21 января 2012

Я посмотрел на кучу других вопросов, и они не совсем то, что мне нужно.Я пытаюсь установить NSTextField на определенную строку на основе имени файла.Я хочу создать файл plist со всеми возможными именами файла и их ключами, чтобы установить строку NSTextField как.Но я не знаю, как сделать так, чтобы он проверял список элементов, и если его там нет, я хочу, чтобы он выполнил код, чтобы оставить текстовое поле пустым.Раньше у меня были операторы if, говорящие, что если имя файла равно этому, то заставьте его сказать это, но я не смог заставить работать остальную часть и только одну, если сработало.Поэтому я подумал, что мне нужно проверить это, но я не знаю, как это сделать, и использовать его с оператором if-else.Это то, что у меня было раньше:

NSString *inputName = [input stringValue];
NSString *theFileName = [[inputName lastPathComponent] stringByDeletingPathExtension];

if ([theFileName isEqualToString:@"038-3698-001"]) {
    [key setStringValue:@"7ed37d8c051da8f8d31b0ccf0980fa5ffa54770c7e68ecb5ebf28abe683cadf21a4a99ed"];
}

if ([theFileName isEqualToString:@"038-3763-001"]) {
    [key setStringValue:@"a31ffd506c6711c5a0c52c9f0a2f7208a2f63ad9dd40506e70d80ea20a981eb1312bc774"];
}
else {
    [key setStringValue:@""];
}

РЕДАКТИРОВАТЬ: у меня есть проверка списка ключей для ключа, но теперь мне нужно, чтобы получить значение для ключа из списка.Примерно так:

NSString *inputName = [input stringValue];
NSString *theFileName = [[inputName lastPathComponent] stringByDeletingPathExtension];
NSDictionary *fileKeys = [[NSMutableDictionary alloc] initWithContentsOfFile:
                          [[NSBundle mainBundle] pathForResource:@"Keys" ofType:@"plist"]];

if ([fileKeys valueForKey:theFileName]) {
    NSString *key = [NSString valueForKey:theFileName];
    [filesField setStringValue:key];
}
else {
    [filesField setStringValue:@""];
}

Не важно, я понял.Это правильный код:

NSString *inputName = [input stringValue];
NSString *theFileName = [[inputName lastPathComponent] stringByDeletingPathExtension];
NSDictionary *fileKeys = [[NSMutableDictionary alloc] initWithContentsOfFile:
                          [[NSBundle mainBundle] pathForResource:@"Keys" ofType:@"plist"]];

if ([fileKeys valueForKey:theFileName]) {
    NSString *key = [fileKeys valueForKey:theFileName];
    [filesField setStringValue:key];
}
else {
    [filesField setStringValue:@""];
}

1 Ответ

1 голос
/ 21 января 2012

Прежде всего, вы можете загрузить список в словарь примерно так:

NSDictionary* fileKeys = [[NSMutableDictionary alloc] initWithContentsOfFile:
         [[NSBundle mainBundle] pathForResource:@"fileKeys" ofType:@"plist"]];

Затем вы можете запросить ключ с помощью -valueForKey:. Таким образом, вы можете проверить имя файла в словаре, и, если оно присутствует, установить key на соответствующее значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...