iOS:如何定义公共方法?

我怎样才能定义一个方法,可以在任何地方,在每个viewcontroller类中调用?

我有一个方法,带给我一个JSON文件,我希望它是可重用的,因为我有几个JSON调用我的应用程序。

你可以帮我吗?

您可以通过一个类别添加它:

编辑

创build一个新的.h .m文件对,并在.h文件中:

@interface UIViewController(JSON) -(void) bringJSON; -(void) fetchData:(NSData*) data; @ end 

然后在.m文件中:

 @implementation UIViewController(JSON) -(void) bringJSON { dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [NSData dataWithContentsOfURL:yourURL]; [self performSelectorOnMainThread:@selector(fetchData:) withObject:data waitUntilDone:YES]; }); } -(void) fetchData:(NSData*) data { //parse - update etc. } @end 

我只是假设你将返回一个NSArray,你可以把任何方法,并扩展所有的UIViewControllers。 bringJSON方法将可用于所有UIViewControllers及其子类。

我相信你正在考虑用“+”符号定义的静态方法。

 + (String) yourFunctionName:(NSInteger)someValue ..... 

那么你可以在任何地方用类名称来调用它:

 [YourClassName yourFunctionName:5]; 

如果你需要有一个访问需要实例化的对象的函数,那么你将需要做一个单例模式。

在方法的返回types之前使用+符号。

例如:

  + (void) Name: (NSString *) str{ } 

我加了第一个答案,因为这是一种用另一个对象创build(实质上)方法的方法,可以从包含该对象的任何文件中调用该方法。

还要记住,objective-c也只是简单的C.你可以包含只包含ANSI-C例程的.c文件,这些例程也可以被调用。

Interesting Posts