您好,登錄后才能下訂單哦!
NSProgress是一個用于管理和跟蹤任務進度的類,可以用于處理分層進度上報。下面是一個簡單的示例,演示如何使用NSProgress處理分層進度上報:
NSProgress *rootProgress = [NSProgress progressWithTotalUnitCount:100];
NSProgress *subProgress1 = [NSProgress progressWithTotalUnitCount:50];
NSProgress *subProgress2 = [NSProgress progressWithTotalUnitCount:50];
[rootProgress addChild:subProgress1 withPendingUnitCount:50];
[rootProgress addChild:subProgress2 withPendingUnitCount:50];
[rootProgress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
[subProgress1 addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
[subProgress2 addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
if (object == rootProgress) {
NSLog(@"Root progress: %.2f", rootProgress.fractionCompleted);
} else if (object == subProgress1) {
NSLog(@"Sub-progress 1: %.2f", subProgress1.fractionCompleted);
} else if (object == subProgress2) {
NSLog(@"Sub-progress 2: %.2f", subProgress2.fractionCompleted);
}
}
[subProgress1 setCompletedUnitCount:25];
[subProgress2 setCompletedUnitCount:30];
// 更新子進度對象完成的單元數量,根進度對象會自動更新
通過以上步驟,您可以使用NSProgress處理分層進度上報,并在UI中顯示相應的進度變化。您也可以根據具體需求來擴展和定制進度的管理和展示方式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。