得到&从不同的类文件编辑NSMutableArray

时间:2011-03-07 04:00:28

标签: objective-c xcode nsmutablearray

我正在尝试从不同的类文件中访问和更改数组。使用NSLog时,我得到(null)的结果。以下是我的代码:

RootViewController.h

NSMutableArray *listOfItems;
@property (nonatomic, retain) NSMutableArray *listOfItems;

RootViewController.m

@synthesize listOfItems;
listOfItems = [[NSMutableArray alloc] init];
[listOfItems addObject:@"One"];
[listOfItems addObject:@"Two"];
[listOfItems addObject:@"Three"];

SecondViewController.m

RootViewController *test = [[RootViewController alloc] init];
NSLog(@"Results: %@", test.listOfItems);

我在我的控制台中收到以下结果:Results: (null)

提前致谢, 库尔顿

P.S。显然我遗漏了一堆代码。我只是想让它更容易阅读。如果您需要查看其他内容,我会非常乐意发布更多内容。只需询问

编辑#1:

我收到数百条NSLog消息,如下所示:

*** __NSAutoreleaseNoPool(): Object 0x4e39020 of class __NSArrayI autoreleased with no pool in place - just leaking

这是我的初始代码:

- (id) init {

//NSLog(@"%@", theUserID);
// Set up database connection
NSString *myDB = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"database.db"];
database = [[Sqlite alloc] init];
[database open:myDB];

//Initialize the array.
listOfItems = [[NSMutableArray alloc] init];

// Add to array to display in the tableView
NSArray *listOfItemsTwo = [database executeQuery:@"SELECT * FROM albums"];  
for (NSDictionary *rowone in listOfItemsTwo) {
    NSString *getName = [rowone valueForKey:@"name"];
    if (getName != NULL) {
        [listOfItems addObject:getName];
        [getName release];
    }
}
return self;

}

1 个答案:

答案 0 :(得分:1)

我猜你反过来RootViewController.m和RootViewController.h片段吗?

你确定

listOfItems = [[NSMutableArray alloc] init];

被叫?也许你可以在那里设一个断点。

编辑:RootViewController.m和RootViewController.h的顺序已在问题中得到修复。从代码中上面的行所在的问题不清楚。这是一条重要的信息。

EDIT2:init方法的示例。

@implementation RootViewController
- (id) init
{
    listOfItems = [[NSMutableArray alloc] init];
    [listOfItems addObject:@"One"];

    return self;
}
@end