类之间的数据没有在iphone中传递

时间:2013-09-10 20:02:46

标签: objective-c

我想从不同的类中分配一个整数数据的值。所以我做了以下事情:

我想从A类中分配一个声明为B类属性的值:

B.h文件中的

@interface B : UIViewController {
    int num;
}
@property(readwrite)int num ;
B.m文件中的

@synthesize num;

现在在A.h文件中

@property(nonatomic,strong)B *b;

然后在A.m文件中

b=[[B alloc]init];
b.num=5;

问题是当我使用

对NS进行NSLOG时

NSLog(@"The Number is %d",num);

在B类中它始终显示0,我尝试使用NSString并且它也传递NULL。我被困在这里,请任何人帮忙吗?

2 个答案:

答案 0 :(得分:2)

B.h档案

@interface B : UIViewController{
      int num;

}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil passingNum:(int)pNumber;

@end

B.m文件

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil passingNum:(int)pNumber{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        num = pNumber;

    }
    return self;
}

A.h档案

@property(nonatomic,strong)B *b;

A.h档案

b = [[b alloc] initWithNibName:@"Here-WriteNameOF-XIB-file-associated-with-b" bundle:nil passingNum:5];

答案 1 :(得分:1)

我这样解决了这个问题

在B级

-(id)initwithParameters:(NSString *)parameter
{

    if(self == [super init])
    {
        // access the paramenter and store in yo u avariable    
    }
    return self;

}

在课堂上

[[class b alloc]initwithParameters:@"Something"];