描述方法中的錯誤
回答
好像你還沒有宣佈「名稱」作爲的NSString財產和/或沒有合成它。
---編輯----
請按照邁克爾的建議嘗試!在你的情況下,它應該是 -
- (NSString *)description
{
return NSStringFromClass([self class]);
}
我以爲self.name應該返回類名稱。 – jingo
@jingo:爲什麼要這樣做?類的名稱與實例的名稱不同。一個實例沒有名字,除非你給它一個,你可以通過聲明和實現一個'name'屬性來實現。即使你這樣做了,給每個實例提供它的類名也不是很有用。如果你想得到對象類的名字,請求它的類並將其傳遞給'NSStringFromClass'。 –
你想要班級名稱,呃?
然後更改您的代碼
-(NSString *)description
{
NSString *className = NSStringFromClass([myObject class]);
return(className);
}
由於-description
是一個實例方法,self
指向當前實例取其類是實現該方法。因此,self.name
(相當於[self name]
)預計會使用名爲-name
的實例方法,這可能是名爲name
的聲明屬性的getter方法。例如:
@interface SomeClass : NSObject
@property (copy) NSString *name;
@end
@implementation SomeClass
@synthesize name;
- (NSString *)description {
return self.name;
}
@end
在另一方面,如果你想回到裏面-description
對應的類名:
- (NSString *)description {
return NSStringFromClass([self class]);
}
要獲取類的名字,你需要不覆蓋的描述方法。如果你真的在描述方法則需要類的名稱:
return [NSString stringWithCString:class_className([self class]);
你需要
#import <objc/runtime.h>
欲瞭解更多信息,請參閱Objective C Runtime Reference
- 1. 語法錯誤顯示錯誤描述
- 2. 方法的描述
- 3. 方法來處理錯誤的文件描述符錯誤
- 4. 類方法:描述「#my_class_method」或描述「#self.my_class_method」?
- 5. jQuery ajax錯誤的描述
- 6. roxygen2錯誤」錯誤:不知道如何描述數據中的s3方法。「
- 7. 錯誤:錯誤的文件描述符「
- 8. 錯誤的文件描述符錯誤
- 9. Rspec描述方法語法
- 10. 顯示錯誤描述iphone
- 11. jsp get http錯誤描述
- 12. 錯誤描述在XAML WP8
- 13. QTcpSocket描述符錯誤
- 14. 錯誤描述指南
- 15. 添加錯誤描述
- 16. Outlook中的錯誤時區和描述
- 17. 描述元信息中的錯誤
- 18. ASN.1模塊描述中的錯誤
- 19. 描述卷中的ec2-automate-backup錯誤
- 20. 錯誤代碼+錯誤描述
- 21. iOS描述方法不叫
- 22. Lua語法錯誤的描述性錯誤信息
- 23. 的Node.js:EBADF,錯誤的文件描述符
- 24. fping腳本中描述的腳本有語法錯誤
- 25. FIO測試中的錯誤文件描述符錯誤
- 26. 如何從SQL中的錯誤代碼獲取錯誤描述?
- 27. 正則表達式中這種替代方法的描述是否錯誤?
- 28. BeanUtils的 - '描述' 方法返回的InvocationTargetException
- 29. filter.destroy()方法的api servlet的描述
- 30. 錯誤的文件描述符
你能編輯你的問題,並粘貼相應的類聲明? – 2011-10-18 11:04:18
@Bavarious,我沒有描述類聲明 – jingo
這是一個實例方法,這意味着你正在實現該方法作爲類的一部分,這意味着你需要一個類或(唉!)類別聲明。 – 2011-10-18 11:12:57