如何使用另一个数组设置数组?

时间:2010-02-27 17:53:09

标签: iphone nsmutablearray nsarray

@property (nonatomic, retain)   NSMutableArray *filteredListContent;
----
@synthesize filteredListContent;


- (void)applicationDidFinishLaunching:(UIApplication *)application {     


    NSMutableArray *test = [[NSMutableArray alloc] init];
    [test addObject:@"test string"];
    [filteredListContent addObjectsFromArray:test];


    NSLog(@"%@", test);
    NSLog(@"Filtered Array is %@", filteredListContent);

    [window makeKeyAndVisible];
}

My log for test显示'test string'但'Filtered list array is(null)'

如何使用数组测试...

设置数组'filteredListContent'

我做错了什么? : - (

4 个答案:

答案 0 :(得分:2)

您是否在任何地方创建并初始化filtersListContent?您的代码看起来正确,应该可以正常工作。

您还应确保释放test变量,此处有内存泄漏。

答案 1 :(得分:0)

你必须实际创建filteredListContent,比如[[NSMutableArray alloc] init]。您得到的错误是您正在一个仍为零的对象上调用方法-addObjectsFromArray:,从未创建过。因此,它只返回nil,并且列表永远不会被过滤。

答案 2 :(得分:0)

filteredListContent是一个指向NSMutableArray的指针,它没有分配任何内存,因此你无法在其上调用方法。编译器不会生成错误,因为您正在将消息传递给nil,这完全没问题。

答案 3 :(得分:-1)

Thanx。

所以我换了一行......

[filteredListContent addObjectsFromArray:test];

阅读...

filteredListContent = [NSMutableArray arrayWithArray:test];

这样做了。我想我现在明白了,虽然我声明了,但我从未创造过......

感谢名单。