我已经做了一番调查,但没有找到我问题的答案,所以我希望有人能给我指一个正确的方向
我对objective c还不太熟悉,在执行一些我认为很简单的事情时遇到了一个小问题;从类方法返回一系列对象
我有以下类和关联的类方法

@implementation Sale

@synthesize title = _title;
@synthesize description = _description;
@synthesize date = _date;

+(NSArray*)liveSales
{
    NSArray *liveSales = [[NSArray alloc] init];

    for(int i = 0; i < 100; i++)
    {
        Sale *s = [[Sale alloc] init];
        [s setTitle:[NSString stringWithFormat:@"Sale %d", i+1]];
        [s setDescription:[NSString stringWithFormat:@"Sale %d descriptive text", i+1]];

        [liveSales addObject:s];

        [s release];
        s = nil;
    }

    return [liveSales autorelease];
}

@end

并且我有一个VIEW控制器,带有下面的代码(修剪以便于阅读):
@implementation RootViewController

@synthesize saleList = _saleList;


- (void)viewDidLoad {
    [super viewDidLoad];

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;

    [[self saleList] setArray:[Sale liveSales]];
}

我遇到的问题是saleList的计数始终为空,因此似乎没有设置数组。如果我调试代码并进入类方法livesales,那么在返回点数组中的对象数是正确的
有人能指点我正确的方向吗?
谢谢:)
戴夫

最佳答案

可能是因为saleList开始时是nil。在objective-c中向nil发送消息(在大多数情况下)没有任何作用。
请改为:

self.saleList = [Sale liveSales];

(假设属性被声明为保留)。

10-07 21:24