我有这样的方法:
-(void)customSum {
NSLog(@"show something");
}
HomeView.m中的我希望在所有其他文件中调用该方法,例如在ArticleView.m中。我可以这样做:
[HomeView customSum];
或类似的东西?我怎么能这样做?
答案 0 :(得分:3)
听起来并不像试图将任何东西子类化(这就是人们提到继承的原因)。如果是的话,请看其他答案。
执行此操作的obj-c方法如下:您希望HomeView.h为类HomeView声明一个接口,并使该方法可以是类方法或实例方法。像这样:
@interface HomeView : UIView
- (void)anInstanceMethod;
+ (void)aClassMethod;
@end
我假设因为这些是来自UIView的“观点”。 然后你将有HomeView.m实现该方法:
@implementation HomeView
- (void)anInstanceMethod
{
// Do Something
}
+ (void)aClassMethod
{
// Do Something else
}
@end
然后,在ArticlViewe.m中(你在ArticleView.h中声明了一个ArticleView类的实现(这是标准的方法,虽然你可以在.m文件中放入一个接口,但你不要不要包含.m文件,因此该类在文件外不可见。)
#include "HomeView.h"
...
[HomeView aClassMethod]; // Call the class method on the class
HomeView *homeView = [HomeView new];
[homeView anInstanceMethod]; // Call the instance method on an instance
...
如果这对你来说都是新手,那你应该买一本关于Objective-C和iOS开发的书。
答案 1 :(得分:1)
也许你应该阅读something about Inheritance。
答案 2 :(得分:1)
首先必须创建HomeView
的实例,如下所示:
HomeView *view = [[HomeView alloc]init];
然后,您可以从任何您喜欢的地方调用此方法,如下所示:
[view customSum];
如果要在不必创建HomeView
实例的情况下调用此方法,可以将-
更改为+
,使其成为类方法而不是实例方法,像这样:
+(void)customSum {
NSLog(@"show something");
}
现在,您可以从任何地方调用它,例如:
[HomeView customSum];
但是,请确保您已在HomeView.h
文件中声明了此方法,并且已将该头文件导入到要调用此方法的文件中,如下所示:
#import "HomeView.h"
有关Objective-C编程语言的更多信息,建议您阅读the Apple Documentation。
答案 3 :(得分:0)
假设ArticleView
来自HomeView
,您只需在[self customSum]
内拨打ArticleView
。
在ArticleView
内,如果需要,您还可以覆盖HomeView
-customSum
的实施。