iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Mobile Development

自己的 app 自己寫系列 第 11

[Day11] 開源的友誼在世仇面前能撐住嗎

  • 分享至 

  • xImage
  •  

有人說如果世界賽某隊輸了要考慮絕交嗚嗚嗚QAQ
希望今年抽籤之神保佑別撞在一起,大家總決賽見。

DeviceActivityEvent

DeviceActivityEvent 看起來是用來表示特定程式螢幕使用時間,初始化時要帶入四個參數:

init(
    applications: Set<ApplicationToken> = [],
    categories: Set<ActivityCategoryToken> = [],
    webDomains: Set<WebDomainToken> = [],
    threshold: DateComponents
)

如果再去看前三個參數的話:

typealias ApplicationToken = Token<Application>
typealias ActivityCategoryToken = Token<ActivityCategory>
typealias WebDomainToken = Token<WebDomain>

再往下看 Token:

struct Token<T>

現在扒到最底可以推回去看這邊涉及到的內容了。

  • typealias:別名,就是給既存的類型一個新名稱,類型一個新名稱,可以增強 code 的可讀性。像上面就只是可以用 ApplicationToken 來表示 Token<Application> 而已
  • Generics:通常用 <T> 來表示泛型,泛型可以是任何類型,有什麼丟什麼,所以上面那段我理解的意思大概是,如果 Token 裡面被放入的是 Application,那可以用 Application 來指涉到這個 struct,如果放進去的是 WebDomain 就用 WebDomainToken 來指稱。而這三個物件對應到的,就分別是 app、活動種類和 website
  • 最後一個 threshold 則是當使用時間達到設定門檻後,會觸發 DeviceActivityMonitor 的 callback

上一篇
[Day10] 一點一點一行一行
下一篇
[Day12] 維運到底是不是好工作
系列文
自己的 app 自己寫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言