Objective C:从类方法返回一个数组

时间:2013-11-22 15:45:50

标签: objective-c

我的班级中有一个NSMutablearray属性,我需要从另一个类访问它我该怎么办?我尝试使用名为breakfast的类方法访问它,但它没有看到属性!!

这是我的代码

@interface FirstViewController : UIViewController { 
    NSMutableArray *food;
}

+ (NSArray*)breakfast;

@property (nonatomic , strong) NSMutableArray * food;

//在.m文件中

+ (NSMutableArray*)breakfast {
    return self.food ; // here class method dont see the property called food
}

2 个答案:

答案 0 :(得分:0)

您可以这样做:

// FirstViewController.h
@interface FirstViewController : UIViewController {
}

+(NSMutableArray*) breakfast;

// FirstViewController.m
+(NSMutableArray*) breakfast
{
  static NSMutableArray* _breakfast = nil;

  if (_breakfast == nil)
  {
    // _breakfast alloc init
  }

  return _breakfast;
}

答案 1 :(得分:-1)

最大的问题是你不能在静态(+)方法中使用“self.propertyname”。你需要有一个类的实例来调用self。

其他问题是你有“食物”和“食物” - 在@property和你试图使用的getter中的不同情况 - 它们区分大小写。 你还有.m和.h文件中的NSArray和NSMutableArray。 最重要的是 - 你真的不需要这个局部变量声明。

我认为你以错误的方式描述了你的问题。如果要在视图控制器之间传递数据,请选中:Passing Data between View Controllers

如果您希望将数据提供给一般的应用程序 - 创建单例。