如何访问类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”添加和获取对象。有可能吗?
答案 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)