从另一个类objc访问变量

时间:2014-03-03 11:31:09

标签: ios objective-c class variables

如何访问类viewController中定义的实例变量。

ViewController.h

@interface ViewController : UIViewController
{
    Class1* class1;
}

ViewController.m

@implementation ViewController
class1 = [[Class1 alloc]init];
@end

Class1.h

@interface Class1 : NSObject
{
NSMutableArray* variablesArray;
}
@property NSMutableArray* variablesArray;

Class1.m

@implementation Class1
@synthesize variablesArray;
@end

现在我想从Class2.m访问实例“class1”变量“variablesArray”。我想从MutableArray“variablesArray”添加和获取对象。有可能吗?

3 个答案:

答案 0 :(得分:1)

是的,这是可能的。

创建其他类的对象并访问该变量。

在claas2中导入Class1(#import“Class1”)

Class1 *objClass1= [[Class1 alloc] init];

现在访问

[objClass1.variableArray  addObject:@"object"];

[objClass1.variableArray  objectAtIndex:0];

如果要访问相同的数组实例,请创建一个Singleton类 在您的类中添加此类方法

+ (Class1 *)sharedInstance
{
    static Class1 *shared = nil;

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,
                  ^{
                      shared = [[self alloc] init];
                  });

    return shared;
}

并在Class2中访问

[[Class1 sharedInstance] variableAray];

答案 1 :(得分:0)

您可以通过简单的点运算符访问类实例的公共属性。请注意,有几种方法可以通过设置属性属性来封装实例变量,如(readwrite,readonly)。

Class1 aClass = [[Class1 alloc] init];
aClass.varibalesArray addObject:@[ @"someObject" ];

确保在Class1

的init方法中正确初始化NSMutableArray
- (id)init
{  
  self = [super init];
  if (self) {
    _variablesArray = [NSMutableArray array];
  } 
  return self;
}

答案 2 :(得分:0)

嘿,您可以通过简单的变量属性来访问另一个类中的变量,如此

@property(非原子,强)NSString * str;

我发送了Answer,请查看此链接