在其他类objective-c中使用NSMutableArray属性

在其他类objective-c中使用NSMutableArray属性,objective-c,class,nsmutablearray,Objective C,Class,Nsmutablearray,我有两个班:A班和B班。我想做的是在ClassB中设置NSMutableArray*条,并在ClassA中使用它。在调试程序时,MutableArray是用这些值设置的,但当我尝试在ClassA中使用这些值时,数组是0。您知道我做错了什么吗?或者是否有更有效的方法在类之间传递变量值 示例代码 ClassA.h @interface ClassA : UIViewController { NSMutableArray *bar; } @property(nonatomic, retai

我有两个班:A班和B班。我想做的是在ClassB中设置NSMutableArray*条,并在ClassA中使用它。在调试程序时,MutableArray是用这些值设置的,但当我尝试在ClassA中使用这些值时,数组是0。您知道我做错了什么吗?或者是否有更有效的方法在类之间传递变量值

示例代码

ClassA.h

@interface ClassA : UIViewController {
    NSMutableArray *bar;
}

@property(nonatomic, retain)NSMutableArray *bar;
-(IBAction)Display:(id)sender;

ClassA.m

// bar initialization
-(id)init{
    self=[super init];

    if (self) {
        bar=[[NSMutableArray alloc]init];
    }
    return self;
}

-(IBAction)Display:(id)sender {

// Trying to display the NSMutableArray set in ClassB
NSLog(@"%d",[bar count]);
}

ClassB.m

#import "ClassB.h"
#import "ClassA.h"

ClassA *classA;

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
   classA=[[ClassA alloc]init];

   // Populating the NSMUtableArray of ClassA
   for (int i=0; i<[array count]; i++) {
                NSDictionary* dicObjects=[array objectAtIndex:i];

                NSString* remoteUrl=[dicObjects objectForKey:@"remote_url"];
                [classA.bar addObject:remoteUrl];
           }

   // NSLog the results (It works!)
   for (NSString *foo in classA.bar) {
           NSLog(@"%@",foo);
      }

}

由于bar是ClassA的实例成员,所以每次创建ClassA的新对象时,它都会有不同的实例。在ConnectionIDFinishLoading方法中创建ClassA的对象时,该对象将只能在该方法中访问


根据我的理解,如果你不是在同一个对象上调用display方法,它是classA中的一个iAction,因此这个对象是完全不同的,你不会得到它的值。在ClassA中编写一个简单函数,使用[ClassA methodName]打印值并从ConnectiondFinishLoading方法调用

如何检查calssA数组中的值是否为0?这确实是您正在运行的代码吗?ClassA.m中缺少@implementation和@Synthesis bar。您从何处调用显示函数?谢谢您解决了我的问题,我以前从未使用过class方法。@user992354。。如果你发现解决方案是有用的,考虑一下投票和接受答案。不幸的是,我没有足够的声誉。对不起,既然你问了这个问题,你至少可以接受答案。它将帮助其他人快速找到合适的答案。您可以通过单击左侧答案旁边的右勾号来完成此操作。