Ios 从另一个类objc访问变量
如何访问在类viewController中定义的实例变量 ViewController.hIos 从另一个类objc访问变量,ios,objective-c,class,variables,Ios,Objective C,Class,Variables,如何访问在类viewController中定义的实例变量 ViewController.h @interface ViewController : UIViewController { Class1* class1; } ViewController.m @implementation ViewController class1 = [[Class1 alloc]init]; @end 类别1.h @interface Class1 : NSObject { NSMutableArr
@interface ViewController : UIViewController
{
Class1* class1;
}
ViewController.m
@implementation ViewController
class1 = [[Class1 alloc]init];
@end
类别1.h
@interface Class1 : NSObject
{
NSMutableArray* variablesArray;
}
@property NSMutableArray* variablesArray;
1.m班
@implementation Class1
@synthesize variablesArray;
@end
现在我想从Class2.m访问实例“class1”变量“variablesArray”。我想从MutableArray“variablesArray”中添加和获取对象。可能吗?是的,可能
将对象设为其他类并访问该变量
在claas2中导入类1(#导入“类1”)
现在访问像
[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;
}
和类2中的访问类似
[[Class1 sharedInstance] variableAray];
通过简单地使用点运算符,可以访问类实例的公共属性。请注意,通过设置(readwrite,readonly)等属性,有几种封装实例变量的方法 确保在Class1的init方法中正确初始化NSMutableArray
- (id)init
{
self = [super init];
if (self) {
_variablesArray = [NSMutableArray array];
}
return self;
}
嘿,您可以通过如下简单地设置变量的属性来访问另一个类中的变量 @属性(非原子,强)NSString*str
我给了一个接近这个的链接,请检查这个链接
@implementation ViewController class1=[[class1 alloc]init]@end
是一个语法错误,实现中不能有裸代码。可以在任何其他类中访问class1的属性。只需在要访问该对象的对应类中创建class1对象,并在我编写时将该属性调用为ClassObject.VariablesArray:class1*objClass1=[[class1 alloc]init];编译器创建Class1的新实例(objClass1),是真的吗?但我想访问在ViewController中创建的实例的变量。我不想在类2中分配新实例。m@user2374693这不是正确的方法。为什么不想在class2中创建class1的对象?如果要访问类的属性,则需要创建该类的实例class@user2374693我们可以在这里继续聊天,例如我在Class1的实例中存储使用过的随机数。Class2用于查找随机数,应该将该数添加到实例Class1的可变数组中。我不能在类2中分配的实例中存储数字,因为分配时,使用过的数字会被重写。@user2374693在这种情况下,您需要创建一个单例类。检查我的最新答案
Class1 aClass = [[Class1 alloc] init];
aClass.varibalesArray addObject:@[ @"someObject" ];
- (id)init
{
self = [super init];
if (self) {
_variablesArray = [NSMutableArray array];
}
return self;
}