Apple'ın belgelerine bakıp Kakao tasarım kalıplarını okurken kafam karıştı. copyWithZone:
Apple belgelerinde, okur:Kopyalama veya fotokopi kopyalamaWithZone: veya ikisini birden mi?
Bu yöntem o kadar sınıf nesneleri NSCopying protokole uyan bir nesneye ihtiyacınız durumlarda kullanılabilir vardır. örneğinde, bu yöntem bir sınıf nesnesini NSDictionary nesnesinin anahtarı olarak kullanmanızı sağlar. Bu yöntemi geçersiz kılmamalısınız.
copy
için bu okur:
Bu NSCopying protokolü benimsemesi sınıflar için bir kolaylık yöntemidir. copyWithZone: için bir uygulama yoksa bir istisna ortaya çıkar. NSObject, NSCopying protokolünü kendisi desteklememektedir. Alt sınıflar protokolü desteklemeli ve copyWithZone: yöntemini uygulamalıdır. CopyWithZone: yönteminin alt sınıfı sürümü, alt sınıfı doğrudan NSObject öğesinden düşmedikçe, uygulamasının dahil edilmesi için ilk önce mesajını göndermelidir. Kakao Design Patterns içinde örneklerde
, onlar copyWithZone:
ve mutableCopyWithZone:
geçersiz ancak NSCopying
protokolüne uygun zaman copy
geçersiz kılmaz. Özel alt sınıfımı bir anahtar olarak NSDictionary
kullanmak istiyorsam yapmam gereken şey bu mu?
Veya copy
'u geçersiz kılar mıyım?
Benzer şekilde, [myClass copy]
yaparsam, bu özel alt sınıfım için copyWithZone:
veya copy
mu? Teşekkürler.