gpt4 book ai didi

ios - 如何清除 Swift 中的互联网数据?

转载 作者:可可西里 更新时间:2023-11-01 01:37:40 28 4
gpt4 key购买 nike

我从我的应用程序互联网数据中获取在重启设备后我使用了多少互联网数据。我想在触摸按钮后清除这些数据。我怎样才能做到?我用 swift 。此代码帮助我获取互联网数据。此代码来自Tracking iPhone Data Usage :

 func getDataUsage() -> (wifi : (sent : UInt32, received : UInt32), wwan : (sent : UInt32, received : UInt32)) {
var interfaceAddresses : UnsafeMutablePointer<ifaddrs> = nil
var networkData: UnsafeMutablePointer<if_data> = nil

var returnTuple : (wifi : (sent : UInt32, received : UInt32), wwan : (sent : UInt32, received : UInt32)) = ((0, 0), (0, 0))

if getifaddrs(&interfaceAddresses) == 0 {
for var pointer = interfaceAddresses; pointer != nil; pointer = pointer.memory.ifa_next {

let name : String! = String.fromCString(pointer.memory.ifa_name)
print(name);
// changed it
_ = Int32(pointer.memory.ifa_flags)
let addr = pointer.memory.ifa_addr.memory
//
if addr.sa_family == UInt8(AF_LINK) {
if name.hasPrefix("en") {
networkData = unsafeBitCast(pointer.memory.ifa_data, UnsafeMutablePointer<if_data>.self)
returnTuple.wifi.sent += networkData.memory.ifi_obytes
returnTuple.wifi.received += networkData.memory.ifi_ibytes
} else if name.hasPrefix("pdp_ip") {
networkData = unsafeBitCast(pointer.memory.ifa_data, UnsafeMutablePointer<if_data>.self)
returnTuple.wwan.sent += networkData.memory.ifi_obytes
returnTuple.wwan.received += networkData.memory.ifi_ibytes
}
}
}

freeifaddrs(interfaceAddresses)
}

return returnTuple
}

最佳答案

我会按如下方式进行:

  • 按下“清除”按钮时,检索当前使用值并将它们存储在用户默认值中。

  • 为了显示,计算当前值和用户默认值。

  • 检测设备是否重启,获取内核启动时间(例如在 didFinishLaunchingWithOptions 中)并将其与最后存储的值。如果不同,重置存储的使用数据在用户默认值中,并将新的内核启动时间存储在用户默认值。

可以使用以下函数检索内核启动时间(这只是将 Getting iOS system uptime, that doesn't pause when asleep 中的代码翻译成 Swift):

func bootTime() -> Int {

var boot = timeval()
var mib : [Int32] = [CTL_KERN, KERN_BOOTTIME]
var size = strideofValue(boot)
sysctl(&mib, UInt32(mib.count), &boot, &size, nil, 0)
return boot.tv_sec
}

关于ios - 如何清除 Swift 中的互联网数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517155/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com