Прежде всего, вы можете получить доступ к пользовательским значениям из вашего Plist
. Чтобы получить доступ к пользовательскому значению из Plist
, вам необходимо добавить следующий код:
extension Bundle {
var apiBaseURL: String {
return object(forInfoDictionaryKey: "serviceURL") as? String ?? ""
}
}
Использование:
let appConfiguration = Bundle.main.apiBaseURL
Ваш applicationDidFinishLaunching
будет выглядеть следующим образом: [1116 ]
func applicationDidFinishLaunching(_ aNotification: Notification) {
let defaults = UserDefaults.standard
defaults.set(nil, forKey: "access_token")
defaults.set(nil, forKey: "refresh_token")
self.userLoggedOut()
let em = NSAppleEventManager.shared()
em.setEventHandler(self, andSelector: #selector(self.getUrl(_:withReplyEvent:)), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))
Constant.apiUrlString = Bundle.main.apiBaseURL
Constant.applicationName = Bundle.main.appName
}
Кроме того, вам нужно будет проверить следующее
Перейти к упаковке и проверить файл Info Plist
. это должен быть ваш основной файл Info Plist.
Проверить Info Plist Как вы выбрали пользовательское значение в файле Info Plist
Вы можете просто использовать Win32 API CreateFile , а затем не указывать права совместного использования. Это гарантирует, что другие процессы не смогут получить доступ к файлу.
DWORD dwShareMode определяет тип совместного использования, который вы хотите, например GENERIC_READ. Если вы укажете 0, это означает, что права на совместное использование не должны предоставляться.
Пример:
HANDLE hFile = CreateFile(_T("c:\\file.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
Если вы хотите заблокировать только определенную часть файла, вы можете использовать LockFile или LockFileEx .
Пример:
//Lock the first 1024 bytes
BOOL bLocked = LockFile(hFile, 0, 0, 1024, 0);
Информацию о блокировке на других платформах см. В моем сообщении здесь .
Вам нужна LockFileEx () (исключительная блокировка файла). Взгляните на это обсуждение из Поваренной книги безопасного программирования для C и C ++.