Zanim przełączyłem się na programowanie na iOS za pośrednictwem Monotouch, grałem trochę z ObjectiveC. Odkąd jedna myśl była na mojej głowie, "Kodowanie wartości klucza" (KVC). Nigdy nie zrozumiałem, na czym to polega i czym jest magia.Kodowanie wartości klucza Apple - czy ktoś może wyjaśnić programistom C#, dlaczego potrzebuję tego i co robi?
Dla mojego zrozumienia jest to tylko zbiór nazw i wartości, takich jak .NET's NameValueCollection
: Zamiast ustawienia anObject.Address = "An address Value"
napisałbyś anObject.Properties["Address"] = "An address value"
. Świetnie. Więc co? Ponieważ wydaje mi się to zbyt łatwe, jestem pewien, że to niemożliwe.
A może dlatego, że .NET ma odbicie i dlatego nie potrzebuje czegoś takiego jak kodowanie wartości kluczowej? Mogę pobrać typ "anObject
" i użyć odbicia, aby zapętlić wszystkie jego właściwości i wyszukać ten o nazwie "Adres", a następnie użyć odbicia, aby ustawić wartość. Czy to może być analogia KVC?
Mam nadzieję, że jest ktoś, kto jest profesjonalistą w ObjC i C#/.NET, który może mi wyjaśnić jakie są korzyści i jak to przełoży na .NET. Proszę nie kierować mnie tylko do dokumentacji Apple. Wiem o tym wszystkim. Próbuję dowiedzieć się, czy czegoś brakuje w moim dotychczasowym życiu kodowania, nie znając KVC? A może używałem czegoś podobnego w .NET, nie będąc świadomym, że przełożyłoby się to na KVC, gdybym używał ObjC?
Jeśli komuś, kto ma pojęcia na temat C#/.NET, jest dozwolony komentarz - naprawdę użytecznym aspektem KVC jest to, że pozwala on na istnienie KVO (Key-Value Observing). – Monolo