如何创建具有常见帮助程序的实用程序类?

时间:2012-07-05 18:27:39

标签: objective-c

我想创建一个具有我需要的常用功能的实用程序类。所以它们必须是静态的,而不是泄漏记忆。

说我想添加这个将NSString转换为NSNumber的函数:

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"42"];
[f release];

我怎样才能返回结果,而不是泄漏?

我是否必须使用autorelease?

1 个答案:

答案 0 :(得分:3)

使用 autorelease 以避免在返回具有不确定所有权的对象时发生内存泄漏。 NSNumber的{​​{1}}方法已经返回一个自动释放的值,因此您不需要在您的情况下执行任何特殊操作。对于其他类的对象,您可以这样做:

numberFromString:

请注意,如果您使用ARC,则无需执行任何操作:编译器非常智能,可以为您解决大部分问题。

在Objective C中,Java / C ++ / C#的静态方法称为类方法。您在声明中使用MyClass *ret = [[[MyClass alloc] initWithSomeValue:42] autorelease]; 而不是+来表示它们,并记住您无法从实现中访问实例方法。

在标题中:

-

在实施中:

@interface MyHelper : NSObject
+(NSString*)format:(NSNumber*)num;
@end