Ö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 descriptionbildirilen örnek yöntemidir:
- (NSString *)description
İşte örnek bir uygulama (grahamparks sayesinde):
- (NSString *)description {
return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}
debugDescriptionda saklıdır? Bence DebugDescriptionLLDB gibi bir hata ayıklayıcı tarafından kullanılması gerekiyor.
Bu ekle @implementationFotoğ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 anInstanceOfYourClasshata ayıklama komut penceresinde yaptığınızda çağrılır . Sınıfınızın bir debugDescriptionişlevi yoksa , sadece descriptionçağrılacaktır.
Taban sınıfı Not olduğunu NSObjectgelmiş gelmez descriptionuygulanan, ancak oldukça çıplak kemikleri: sadece nesnenin adresini görüntüler. Bu nedenle description, özellikle descriptionkodunuzdaki yöntemi kullanırsanız, bilgi almak istediğiniz herhangi bir sınıfta uygulamanızı öneririm . Eğer kullanımını yaparsanız descriptionkodunuzda, sana uygulamak önermek debugDescriptionde yapım, hem de debugDescriptiondaha 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.