Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7564391
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T13:53:33+00:00 2026-05-30T13:53:33+00:00

Before I switched to iOS development via Monotouch I played around a bit with

  • 0

Before I switched to iOS development via Monotouch I played around a bit with ObjectiveC. Ever since one thing has been on my mind “Key Value Coding” (KVC). I have never understood what it is good for and what the magic behind it is.

For my understanding it is just a collections of names and values, like .NET’s NameValueCollection: Instead of setting anObject.Address = "An address Value" you would write anObject.Properties["Address"] = "An address value".
Great. So what? Because this appears to be too easy to me I’m sure that can’t be it.

Or is it because .NET has reflection and therefore has no need for something like Key-Value-Coding? I can grab the type of “anObject” and use reflection to loop all of its properties and look for the one called “Address” and then use reflection to set the value.
Is that maybe the analogy of KVC?

I’m hoping there is somebody out there who’s a pro in ObjC and C#/.NET who can explain to me what the benefits are and how it would translate into .NET.
Please don’t just point me to Apple’s documentation. I know all that. I’m trying to find out if something has been missing in my coding-life so far by not knowing KVC? Or have I maybe been using something similar in .NET not being aware that it would translate into KVC if I was using ObjC?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T13:53:34+00:00Added an answer on May 30, 2026 at 1:53 pm

    From somebody who uses both every day for probably 3 years now:

    As you figured out, there’s nothing amazingly complex in KVC that can’t be done with dictionaries and NameValueCollections in C#.

    The big difference is that KVC is built in the language. An object in Obj-C IS a NameValueCollection. You don’t have to change the way you develop (from classes and properties to dictionaries) to use it. You can create your object with the properties you want, and then later on call a valueForKey:@”name”, and everything still works.

    Now you can say: “yeah cool, but I can do that with reflection!”. Sure you can, but just as before, you’ll have to change the way you develop again, not counting the fact that reflection is a lot slower in general.

    Another cool feature of KVC it it allows you to use KVO, which basically allows you to register to receive notifications about changes in any object without having to write a single line of code in those objects. So, in any object in your application, you can call “addObserver:forKeyPath:”, and receive a callback if anybody else in your application changes that property. This is really useful for live apps, like iOS apps.

    Again, you can implement KVO in C# (MVVM frameworks for example do this all the time), but you have to write extra code for that. In Obj-C, it’s built in the language.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I recently switched my development machine from Windows XP to Windows 7 and since
Has anyone heard of this error before: I have a Java 5 application, that
I'm new to iOS and objective-C. Before I dive down into this I'd like
I'm new to ios development and to stackoverflow. I did try searching both stackoverflow
Before when I did PHP development with an MySQL database I used phpmyadmin for
Our company has recently switched over to using After the Deadline for our spell
It appears this topic has been covered a few times before, but those solutions
In order to do some multi-platform GUI development, I have just switched from GTK
The last thing my application does before it launches is start a new thread
I have switched all html (and php) pages to utf-8. Before that everything looked

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.