IOS将包含类的实例中的变量设置为包含它的类的实例

时间:2014-04-21 10:06:58

标签: ios design-patterns circular-dependency

我有两个班级:classAClassB,现在我已将班级B纳入班级

所以在classA里写的是#import "classB.h"

现在,我的问题是如何在classA FROM INS INSIDE classB中设置一个变量,这样假设A是classA的一个实例,而B是一个classB的实例,我在方法中说A.var = self.var,假设var是两个类中的属性。

3 个答案:

答案 0 :(得分:0)

实例化 ClassB 时,您可以设置 ClassA

的var
ClassB *b = [[ClassB alloc]init];
b.var = self.var;

所以从ClassB你可以访问如下的值

NSLog("%@",self.var)

答案 1 :(得分:0)

您可以通过引用B类的方法发送变量,也可以从classB中的函数返回一个对象,并将其分配给classA中的变量:

self.var=[classB func];

如果func是类classB中的静态函数 或

self.var=[B func];

如果func是类classB中的非静态函数,B是classA中classB的对象

答案 2 :(得分:0)

您可以将变量设为public,也可以将其变为属性。例如,将其公开:

@interface ClassA
{
@public
    int var;
}
// methods...
@end

// Inside a ClassB method:
ClassA *obj = ...;
obj->var = 3;

使它成为一个属性:

@interface ClassA
{
    int var;  // @ this is protected by default
}
@property (readwrite, nonatomic) int var;
// methods...
@end

@implementation ClassA
@synthesize var;
...
@end

// In ClassB 
ClassA *obj = ...;
obj.var = 3;  // implicitly calls [obj setVar:3]
int x = obj.var;  // implicitly calls x = [obj var];