類的方法,我知道類方法和對象方法之間的差異,但我不明白爲什麼我們使用的iOS類的方法?任何人都可以給我例子,所以我可以理解的.. ??使用的iOS中
Q
使用的iOS中
0
A
回答
0
類方法用於庫例程。要訪問這些方法,不必創建它的對象。
例如,有些時候,它可以讓你輕鬆初始化創建一個對象。
NSArray *arr = [NSArray array];
1
類方法是類處理的方法,實例方法是各個實例上的方法。
類方法的常見用例是方便的分配器,如NSString
的+stringWithFormat:
。這是相同的(如果您不使用ARC,則附加autorelease)使用[[NSString alloc] initWithFormat:]
,但可以節省大量時間。
又如MFMailComposeViewController
的方法。沒有必要先創建一個實例來查看是否支持發送郵件。這個類更瞭解這個,所以這個方法是一個類方法而不是實例方法。
1
Stackoverflow是你的朋友。
What is the difference between class and instance methods?
類方法通常是方便的方法如的NSString的+ stringWithFormat: 也就是說,你不需要實例化一個類來使用它們。
1
類方法和對象的方法。
@interface TheClassA : NSObject
+ (TypeA)classMethod;
- (TypeB)objectMethod;
@end
@implementation TheClassA
+ (TypeA)classMethod
{
}
- (TypeB)objectMethod
{
}
@end
main()
{
[TheClassA classMethod]; // Correct!!!
[TheClassA objectMethod]; // Wrong!!!
TheClassA *obj = [[TheClassA alloc] init];
[obj classMethod]; // Wrong;
[obj objectMethod]; // Correct;
[obj.class classMethod]; // Correct
[obj.class objectMethod]; // Wrong
}
類方法的範圍與通用C語言函數類似。這是全球性的方法。 但是...對象方法只給出有效的對象... 類方法不能改變它的類屬性,不能發送消息給對象。 但是,對象方法可以將消息發送到對象並可以更改屬性。
祝你好運。
1
我經常使用類方法來創建一個使用名爲「單身」設計模式的程序。例如,如果我有一個處理來自其他類的請求的類,那麼我只需要一個請求處理類的實例,並且我希望我的整個程序使用同一個類。在請求處理類中,我放置了一個靜態變量來保存實例。
static MyRequestHandler *requestHandler;
並使用類方法來獲得它,如果它不存在,我先做它,然後保存它。在那裏像這樣的代碼
MyRequestHandler *requestHandler = [MyRequestHandler getRequestHandler];
相關問題
- 1. 使用iOS中的按鈕
- 2. 使用OpenStreetMap的iOS中
- 3. NSPredicate在iOS中的使用
- 4. NSRegularExpression使用iOS中
- 5. iOS中使用touchXML的SOAP使用
- 6. iOS中使用CoreGraphics中
- 7. 使用iOS中的離子應用
- 8. 在iOS應用中使用Spotify的webAPI
- 9. iOS應用中的iOS 8
- 10. 使用的是iOS
- 11. 的iOS使用Quartz
- 12. 使用Tesseract的iOS
- 13. 使用GL_RGBA8的iOS
- 14. 使用IOS的WebService
- 15. iOS:在舊iOS SDK中使用新SDK中的常量
- 16. 在Swift中使用OpenCV iOS
- 17. 在iOS中使用C++ CocoaPod
- 18. 在iOS中使用循環
- 19. 在iOS中使用矢量
- 20. 在iOS中使用MySQL
- 21. 在iOS中使用UISplitViewController
- 22. 如何使用GCM iOS中
- 23. 在iOS中使用Generic
- 24. 在iOS中使用SlideView
- 25. 在iOS中使用Yelp api
- 26. 中心使用軸ShinobiCharts(IOS)
- 27. 在iOS中使用JSON
- 28. 短信使用Twilio iOS中
- 29. 在iOS中使用節儉
- 30. iOS中使用 - (oneway void)
它完全是愚蠢這是downvoted儘管是在谷歌上的結果,顯然很多開發者 – ChuckKelly 2016-03-13 04:14:03
@ChuckKelly同意很有幫助
其他類可以達到這個實例。也許更好的方式來重述這個問題將是:使用/創建類方法與實例方法的優點是什麼? – alexisSchreier 2017-01-28 22:29:55