setValue:forKey:Diğer şeylerin yanı sıra, Arayüz Oluşturucu'nun beğenilerinden nesne özelliklerine erişmenizi sağlayan NSKeyValueCoding protokolünün bir parçasıdır . setValue:forKey:dışındaki sınıflarda uygulanır NSDictionary.
setObject:forKey:olduğunu NSMutableDictionary'svarolmaya sebep. İmzası setValue: forKey: ile oldukça benzerdir, ancak daha geneldir (örneğin, herhangi bir anahtar türü). İmzaların çok benzer olması bir tesadüf.
Karışıklıklara ek olarak, NSMutableDictionary uygulamasının çoğu durumda setValue:forKey:eşdeğer olmasıdır setObject:forKey:. Diğer sınıflarda setValue:forKey:üye değişkenleri değiştirir. Gelen NSMutableDictionarybir '@' karakteri ile anahtar önüne belirtilmediği sürece bu sözlüğe giriş değiştirir - bu durumda o üye değişkenleri değiştirir.
Yani, kısaca, kullanımda setObject:forKey:tüm sözlük anahtarlarını ve değerlerle işe gerekir ve ne zaman setValue:forKey:sen mücadele için gereken nadir durumlarda KVP .
EDIT: ve oh, daha önce sorulmuş ve cevaplanmış gibi görünüyor: objectForKey ve valueForKey arasındaki fark?