Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Swift:如何通过SCDynamicStoreCopyConsoleUser获取控制台用户、UID和GID?_Objective C_Macos_Cocoa_Swift - Fatal编程技术网

Objective c Swift:如何通过SCDynamicStoreCopyConsoleUser获取控制台用户、UID和GID?

Objective c Swift:如何通过SCDynamicStoreCopyConsoleUser获取控制台用户、UID和GID?,objective-c,macos,cocoa,swift,Objective C,Macos,Cocoa,Swift,我可以使用python从SCDynamicStoreCopyConsoleUser获取用户名、UID和GID: #!/usr/bin/python from SystemConfiguration import SCDynamicStoreCopyConsoleUser cfuser = SCDynamicStoreCopyConsoleUser( None, None, None ) print cfuser[0] # Returns console user, e.g.: myUse

我可以使用python从SCDynamicStoreCopyConsoleUser获取用户名、UID和GID:

 #!/usr/bin/python
 from SystemConfiguration import SCDynamicStoreCopyConsoleUser
 cfuser = SCDynamicStoreCopyConsoleUser( None, None, None )
 print cfuser[0] # Returns console user, e.g.: myUsername
 print cfuser[1] # Returns console user’s UID, e.g.: 501
 print cfuser[2] # Returns console user’s GID, e.g.: 20
如何使用Swift获得相同的报税表

SCDynamicStoreCopyConsoleUser的快速声明

 func SCDynamicStoreCopyConsoleUser(_ store: SCDynamicStore!,
                                    _ uid: CMutablePointer<uid_t>,
                                    _ gid: CMutablePointer<gid_t>) -> Unmanaged<CFString>!
func-SCDynamicStoreCopyConsoleUser(u-store:SCDynamicStore!,
_uid:CMutablePointer,
_gid:CMutablePointer)->非托管!
我的快速呼叫

 var uid: CMutablePointer<uid_t>!
 var gid: CMutablePointer<gid_t>!

 var cfuser: NSArray = [SCDynamicStoreCopyConsoleUser(nil,uid,gid)]

 // the return has only one element containing the username
var-uid:CMutablePointer!
变量gid:CMutablePointer!
var cfuser:NSArray=[scdynamicstorecompyconsoleuser(nil、uid、gid)]
//返回只有一个包含用户名的元素

Swift函数
SCDynamicStoreCopyConsoleUser
采用
CMutablePointer
参数,这意味着您必须传递
uid\u t
变量的地址。 您还应该检查调用是否成功(否则返回
nil
), 和你 必须按照中的说明转换返回的非托管对象 :

import SystemConfiguration

var uid: uid_t = 0
var gid: gid_t = 0

if let theResult = SCDynamicStoreCopyConsoleUser(nil, &uid, &gid) {
    let name = theResult.takeUnretainedValue()
    println("name = \(name), uid = \(uid), gid = \(gid)")
} else {
    println("failed")
}