我一直在构建iOS应用程序,其中一个ViewControllers已经充满了以下功能:
CGPoint randomPoint()
{
//Code goes here
}
我现在想将它们移到A类(或协议,我不确定什么对我有用),在VC中导入它并像以前一样调用它:
p=randomPoint(); //NOT A.randomPoint(), [A randomPoint] or whatever
我尝试使用C ++类模板,但它在CGPoint,CGRect等方面存在问题。
我该如何实现?
答案 0 :(得分:3)
如果您想知道将C函数放在您所描述的函数中,最佳做法是将它们移动到具有有意义名称的单独.h文件中。例如MyGeometry.h
确保为您的函数指定一个描述性名称,例如:
static inline CGPoint CGPointMakeRandom() {
// your code
return point;
}
答案 1 :(得分:0)
您可以使用类方法创建单独的目标c类。
在头文件中声明这样的方法(假设你要调用它
)#import <UIKit/UIKit.h>
@interface pointHelper : UIViewController
+(CGPoint) randomPoint;
然后在.m文件中
@implementation pointHelper
+(CGPoint) randomPoint{
//// implementation
}
当你想在另一个文件中唤起该方法时。
#import "pointerHelper.h"
然后您就可以访问这样的方法......
CGPoint thePoint = [pointHelper randomPoint];
或者如果你有一个类的对象..
CGPoint thePoint = [[pointHelperObject class] randomPoint];
这是一种更好的方法,因为它使您的代码更清晰。 [pointHelper randomPoint]告诉你为什么要唤起方法以及它正在做什么。您正在使用具有点的实用程序的类,并且您正在使用它来获取随机点。你不需要一个对象来唤起这个方法,因为它是由类抽象地控制的。请注意不要尝试在类方法中访问类的属性。