API цепочки для ключей в Objective C, не C? - PullRequest
0 голосов
/ 22 августа 2011

Я новичок в Cocoa и ObjectiveC и пишу основную программу, которая использует веб-сервис для входа пользователя на сайт.Я хочу сохранить учетные данные в связке ключей, и я столкнулся с SecKeychainFindGenericPassword в API связки ключей.Это именно то, что мне нужно, но пример написан на C, а не на ObjectiveC!

Я пытался вызвать его так: [SecKeychainFindGenericPassword .. и автозаполнение предлагает все параметры, но типы являются const char, а не NSString !

Может ли эта функция также использоваться в ObjectiveC?Может кто-нибудь показать мне строку ObjectiveC, которая вызывает эту функцию?

Спасибо!

x

1 Ответ

3 голосов
/ 22 августа 2011

Да, эту функцию можно использовать, но я бы порекомендовал использовать существующую оболочку связки ключей Objective-C . Когда вам нужна строка C из NSString, самый простой способ - использовать свойство UTF8String.

const char *utf8str = [@"nsstring" UTF8String];

Если вы хотите указать другую кодировку, используйте - (const char *)cStringUsingEncoding:(NSStringEncoding)encoding

Например, быстрый поиск в Google вызвал этот пример .

error = SecKeychainFindGenericPassword(keychain, strlen([service UTF8String]), [service UTF8String], strlen([account UTF8String]), [account UTF8String], &existingPasswordLength, (void **)&existingPasswordData, &existingItem);
...