You cannot get a complete list of kvo-compatible keys for an object. Such a list does not exist. An object can not only use any keys it needs, but it can even dynamically add new keys at run time. The best thing you can probably do is iterate over all the properties, treat their names as keys, and perhaps iterate over methods that look for something from the form -setFoo:to handle "foo" as the key. But this is not perfect, and he does not guarantee that everyone will be caught.
source
share