Özel sınıflarımda geçersiz kılabileceğim bir yöntem var mı?
NSLog(@"%@", myObject)
denirse, nesnemin alanlarını (veya önemli bulduğum her şeyi) basar? Sanırım Java'nın Objective-C eşdeğerini arıyorum toString()
.
Özel sınıflarımda geçersiz kılabileceğim bir yöntem var mı?
NSLog(@"%@", myObject)
denirse, nesnemin alanlarını (veya önemli bulduğum her şeyi) basar? Sanırım Java'nın Objective-C eşdeğerini arıyorum toString()
.
Yanıtlar:
Şu şekilde description
bildirilen örnek yöntemidir:
- (NSString *)description
İşte örnek bir uygulama (grahamparks sayesinde):
- (NSString *)description {
return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}
debugDescription
da saklıdır? Bence DebugDescription
LLDB gibi bir hata ayıklayıcı tarafından kullanılması gerekiyor.
Bu ekle @implementation
Fotoğrafınızı sınıfının:
- (NSString *)description {
return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}
NSObject öğesinin açıklama yöntemini geçersiz kılabilirsiniz:
- (NSString *)description
Günlük kaydı konusunda, bu blog yazısını Objective-C'de daha iyi giriş için tavsiye ederim .
Kullanabileceğiniz iki işlev vardır.
- (NSString*)description
Nesnenizi IE için bir parametre olarak koyduğunuzda bu görüntülenir NSLog
. Diğer açıklama işlevi:
- (NSString*)debugDescription
Bu po anInstanceOfYourClass
hata ayıklama komut penceresinde yaptığınızda çağrılır . Sınıfınızın bir debugDescription
işlevi yoksa , sadece description
çağrılacaktır.
Taban sınıfı Not olduğunu NSObject
gelmiş gelmez description
uygulanan, ancak oldukça çıplak kemikleri: sadece nesnenin adresini görüntüler. Bu nedenle description
, özellikle description
kodunuzdaki yöntemi kullanırsanız, bilgi almak istediğiniz herhangi bir sınıfta uygulamanızı öneririm . Eğer kullanımını yaparsanız description
kodunuzda, sana uygulamak önermek debugDescription
de yapım, hem de debugDescription
daha ayrıntılı.
description
özelliğin ayrılmıştır ... ve yararlı hata ayıklama bilgileri sağlar! Bu durumda, kendi benzersiz yöntem adınızı bulmanız gerekir.