簡體   English   中英

針對多個keyPath執行valueForKeyPaths

[英]Performing valueForKeyPaths against multiple keyPaths

假設我有一個具有一定數量屬性的對象,並將1000個這些對象加載到數組中。 接下來,我針對這些屬性執行一系列valueForKeyPaths

result.property1 = [array valueForKeyPath:@"@sum.property1"];
result.property2 = [array valueForKeyPath:@"@sum.property2"];
result.property3 = [array valueForKeyPath:@"@sum.property3"];
etc...

單獨匯總這些屬性似乎效率很低。 除了快速枚舉屬性並手動求和之外,還有沒有更好的方法?

for(Foo* foo in array) {
    result.property1 += foo.property1;
    result.property2 += foo.property2;
    result.property3 += foo.property3;
}

KVC要求鍵必須是字符串:

密鑰是標識對象的特定屬性的字符串。 通常,鍵對應於接收對象中訪問器方法的名稱或實例變量。 密鑰必須使用ASCII編碼,以小寫字母開頭,並且不能包含空格。

因此,據我所知,不幸的是,您無法使用valueForKeyPath:做到這一點valueForKeyPath:您將不得不手動執行或枚舉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM