0
我經常需要檢索屬於Set的第一個對象。 (使用對象爲集合的代表。)@firstObject的集合對象運算符鍵值編碼KVC
我設想一個集合對象操作,如同對
@unionOfObjects
但顯然
@firstObject
是否有可能建立這樣一個集合運營商!
我經常需要檢索屬於Set的第一個對象。 (使用對象爲集合的代表。)@firstObject的集合對象運算符鍵值編碼KVC
我設想一個集合對象操作,如同對
@unionOfObjects
但顯然
@firstObject
是否有可能建立這樣一個集合運營商!
目前沒有辦法定義自定義集合運算符。然而,由於一些內部魔術有一個有趣的解決方案:
NSSet *testSet = [NSSet setWithArray:@[@"one", @(1)]];
id object = [testSet valueForKey:@"@anyObject"];
NSLog(@"anyObject (%@): %@", NSStringFromClass([object class]), object);
UPD:忘了提另一個方便的技巧:你可以在NSArray
使用@lastObject
!
'anyObject'可能工作。謝謝。生病給它一個鏡頭。在初始查看時,如果你有nsset,爲什麼不只是[testSet anyObject]與[testSet valueForKey @「anyObject」]。本質上,它看起來像集合和數組的一些存取方法(lastObject,anyObject)是關鍵值編碼。 –
@GabeRainbow,你的問題是關於使用收集操作符。你絕對可以使用anyObject。警告,valueForKey:@「anyObject」不起作用。 valueForKey:@「@ anyObject」將會。這是由於收集操作員的一些實現細節。 – Anton
感謝您的澄清。我注意到@「」蘋果文件中的拼寫錯誤必然會引起一些頭痛。 AnyObject確實可以達到我的目的,因爲我在集合中尋找任何代表性的對象,而不是特定的對象,首先是最後一個。 –