Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何使用nsarray初始化nsmutablearray_Iphone_Ios_Nsmutablearray_Nsarray_Foundation - Fatal编程技术网

Iphone 如何使用nsarray初始化nsmutablearray

Iphone 如何使用nsarray初始化nsmutablearray,iphone,ios,nsmutablearray,nsarray,foundation,Iphone,Ios,Nsmutablearray,Nsarray,Foundation,我试图用NSArray的值初始化NSMutableArray,但当我NSLog时,新创建的NSMutableArray得到的只是(null),(null)。。。等 我不知道为什么这件事会让人非常沮丧 我在标题中设置了myMutableArray,@synthesis等 然后在parserdidend委托中,这就是我试图做的 - (void)parserDidEndDocument:(NSXMLParser *)parser { if (dataSetToParse == @"ggf"){

我试图用
NSArray
的值初始化
NSMutableArray
,但当我
NSLog
时,新创建的
NSMutableArray
得到的只是(
null
),(
null
)。。。等

我不知道为什么这件事会让人非常沮丧

我在标题中设置了
myMutableArray
@synthesis

然后在parserdidend委托中,这就是我试图做的

- (void)parserDidEndDocument:(NSXMLParser *)parser
{
    if (dataSetToParse == @"ggf"){        
        //Filter results (ISTOY = T)
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",@"ISTOY",@"T"];
        NSArray *filteredArray = [parsedDataArrayOfDictionaries filteredArrayUsingPredicate:predicate];

       NSLog(@"%@", filteredArray); //This prints correct details

        [myMutableArray setArray:filteredArray];

         NSLog(@"%@", myMutableArray); //This prints (null), (null)... etc

    //Use myMutableArray later...
    }

我想myMutableArray是零

此外,您还可以执行以下操作:

myMutableArray = [ [ filteredArray mutableCopy ] autorelease ] ;
(如果在ARC下,不要添加自动释放)

如nielsbot所说,或者:

myMutableArray = [NSMutableArray arrayWithArray: filteredArray];

如果您需要担心的话,这已经返回了一个自动释放的实例。

另外,如果
parsedDataArrayOfDictionaries
myMutableArray
是支持属性的成员变量,我认为最好使用属性访问器,即
self.myMutableArray
。。为什么您认为我尝试的另一种方法不起作用???当您编写
@property(…)NSMutableArray*myMutableArray
时,您的“意思”是“此变量可以包含对NSMutableArray的引用”,但您仍然需要为属性分配一个NSMutableArray引用,使其包含一个NSMutableArray引用。有意义吗?在这里的评论中解释可能很复杂
@property
声明属性的接口,即“这个类的实例有一个名为x的属性”,但它实际上没有说明该属性是如何实现的。添加
@synthesis
会为属性创建一个getter/setter实现,并且还声明getter/setter存储区属性的值存储在某个成员变量中。因此,当您编写
myMutableArray
而不是
self.myMutableArray
时,您将直接转到存储属性值的成员变量
myMutableArray
,而不是调用属性的getter和塞特