2013-06-19 47 views

回答

1

目前沒有辦法定義自定義集合運算符。然而,由於一些內部魔術有一個有趣的解決方案:

NSSet *testSet = [NSSet setWithArray:@[@"one", @(1)]]; 

    id object = [testSet valueForKey:@"@anyObject"]; 
    NSLog(@"anyObject (%@): %@", NSStringFromClass([object class]), object); 

UPD:忘了提另一個方便的技巧:你可以在NSArray使用@lastObject

+0

'anyObject'可能工作。謝謝。生病給它一個鏡頭。在初始查看時,如果你有nsset,爲什麼不只是[testSet anyObject]與[testSet valueForKey @「anyObject」]。本質上,它看起來像集合和數組的一些存取方法(lastObject,anyObject)是關鍵值編碼。 –

+0

@GabeRainbow,你的問題是關於使用收集操作符。你絕對可以使用anyObject。警告,valueForKey:@「anyObject」不起作用。 valueForKey:@「@ anyObject」將會。這是由於收集操作員的一些實現細節。 – Anton

+0

感謝您的澄清。我注意到@「」蘋果文件中的拼寫錯誤必然會引起一些頭痛。 AnyObject確實可以達到我的目的,因爲我在集合中尋找任何代表性的對象,而不是特定的對象,首先是最後一個。 –