我可以编写像这样的Objective-C类方法吗?

时间:2011-09-07 06:57:39

标签: objective-c static class-method

为方便使用,我写了一个名为Addition的SBJsonParser类别:

@implementation SBJsonParser(Addition)

+ (NSDictionary *)parseJson:(NSData *)data {
    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSDictionary *dict = [parser objectWithData:data]; 
    [parser release];
    return dict;
}

@end

我的问题是:

  1. 是不是?
  2. 类方法中的指针解析器是静态的吗?如果不是,我应该将它声明为静态吗?
  3. 指针解析器需要释放吗?

4 个答案:

答案 0 :(得分:2)

  1. 看起来没问题,如果您确定JSON数据包含字典而不是数组。

  2. 不,不。 parser是本地的,如果-objectWithData:方法是同步的,则不需要任何其他内容。

答案 1 :(得分:1)

这看起来很好并且整体正确

在这种情况下,您不必对解析器使用static关键字。

是的,你需要释放解析器,并且你已经在正确的位置完成了它。

答案 2 :(得分:1)

1)看起来不错

2)事实并非如此。你不应该。

3)它很好,因为它是

答案 3 :(得分:1)

很好。解析器不是状态它是常规的局部变量,但是因为你无论如何释放它所以是什么。是解析器需要发布