Questa è la mia prima volta che scrivo in Swift, Cocoa (ho esperienza in Cocoa Touch) e uso Autorizzazione, quindi onestamente non ho idea se sono sulla buona strada. Sto cercando di apportare una modifica al file hosts, che richiede l'autenticazione dell'utente, ma entrambi i metodi AuthorizationCreate
e AuthorizationExecuteWithPrivileges
danno errori.Autorizzazione al cacao in Swift
var authorizationRef:AuthorizationRef
var status:OSStatus
status = AuthorizationCreate(nil, environment:kAuthorizationEmptyEnvironment, flags:kAuthorizationFlagDefaults, authorization:&authorizationRef)
let overwrite_hosts = "echo \(hostsContents) > /private/etc/hosts"
let args = [overwrite_hosts.cStringUsingEncoding(NSUTF8StringEncoding)]
status = AuthorizationExecuteWithPrivileges(authorizationRef, pathToTool:"/bin/sh", options:kAuthorizationFlagDefaults, arguments:args, communicationsPipe:nil)
chiamarmi AuthorizationCreate
sta gettando "Tipo '()' non è conforme al protocollo 'AuthorizationRef'" e il mio richiamo della AuthorizationExecuteWithPrivileges
sta gettando "Impossibile trovare un sovraccarico per '__conversion' che accetta gli argomenti forniti"
Qualche idea? Mi sto avvicinando in modo errato?
Grazie per qualsiasi aiuto!
Si scopre che non sei implemeting i metodi AuthorizationRef protocollo che si deve attuare. Vai alla sua implementazione con cmd + cliking in esso, cerca qualsiasi cosa non contenga @optional e implementala. –