2
在我的obj-c類中,我有一個將字符串映射到對象的字典。作爲屬性/方法的objective-c字典訪問
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"key1", @"value2", @"key2", nil];
MyClass* obj = [[MyClass alloc] initWithDictionary:dict];
現在,而不是做:
NSString* val1 = [obj value:@"key1"];
我想做的事:
NSString* val1 = [obj key1]; // @"value1"
NSString* val2 = [obj key2]; // @"value2"
NSString* val3 = [obj key3]; // nil, not found
這可能嗎?
當然這假定(a)字典鍵是有效的標識符名稱;和(b)沒有「真正的」屬性/方法具有相同的名稱(這可能會調用真正的方法)。
你的答案是點睛之筆,雖然我會有點擔心OP爲什麼需要做這樣的事情。總的來說,如果它不會產生真正令人信服的好處,那麼將這種魔法引入代碼庫似乎最好是謹慎的。 – jlehr 2011-12-24 20:42:36
@jlehr:我正在尋找類似Javascript的字典訪問。我確實有一個理由。 – noamtm 2011-12-25 09:10:20
@Abizern:這*幾乎*我想要的。在你上面的例子中,我希望能夠調用[obj Key1],而不是[obj @「Key1」]。 – noamtm 2011-12-25 09:20:24