【问题标题】:How do I set an array with another Array?如何用另一个数组设置一个数组?
【发布时间】:2010-02-27 17:53:08
【问题描述】:
@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];
}

我的测试日志显示“测试字符串”但“过滤后的列表数组为 (null)”

如何使用数组 test 设置数组 'filteredListContent'...

我做错了什么? :-(

【问题讨论】:

    标签: iphone nsmutablearray nsarray


    【解决方案1】:

    您是否在任何地方创建和初始化过滤器列表内容?您的代码看起来不错,应该可以工作。

    您还应该确保释放您的test 变量,这里有内存泄漏。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          谢谢。

          所以我换行了……

          [filteredListContent addObjectsFromArray:test];
          

          阅读...

          filteredListContent = [NSMutableArray arrayWithArray:test];
          

          这就完成了。我想我现在明白了,虽然我声明了它,但我从未创建它......

          谢谢。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-07
          • 1970-01-01
          • 2010-11-17
          • 1970-01-01
          • 2022-01-03
          相关资源
          最近更新 更多