dictionary[@key]
- короткая рука для звонка [dictionary objectForKeyedSubscript:@"key"]
. Поэтому для переопределения функциональности dictionary[@"key"]
вы можете подкласса NSDictionary
.
@interface MyDictionary : NSDictionary
- (id) objectForKeyedSubscript:(id)key;
@end
@implementation MyDictionary
- (id) objectForKeyedSubscript:(id)key
{
/*
...
*/
}
@end
Оригинальные категории ответов, используя, однако этот подход не рекомендуется, поскольку она будет переопределять оригинальный метод удаления доступа к super
и потенциал столкновений должны несколько категорий грузиться перекрывая один и тот же метод. Последняя загружаемая категория будет использоваться во время выполнения, поэтому вы не можете гарантировать, что это будет.
dictionary[@key]
- короткая рука для звонка [dictionary objectForKeyedSubscript:@"key"]
. Поэтому, чтобы переопределить функциональность dictionary[@"key"]
, вы создадите новую категорию для NSDictionary
.
//Category in NSDictionary+CustomKeyedSubscript.h and NSDictionary+CustomKeyedSubscript.m
@interface NSDictionary (CustomKeyedSubscript)
- (id) objectForKeyedSubscript:(id)key;
@end
@implementation NSDictionary (CustomKeyedSubscript)
- (id) objectForKeyedSubscript:(id)key
{
/*
...
*/
}
@end
Почему отрицательный голос? – crypt