在类之间传递NSString

时间:2011-08-02 08:11:13

标签: iphone objective-c ios inheritance

这是我一直对

感到困惑的事情

我似乎永远无法找到一个好的解释,我理解继承,但是从我学到的知识是在主类和它们的子类之间...如果我想将NSString传递给另一个不是另一个

的子类

以下是一个例子:

class1.h

@interface class1 : UIViewController{
NSString *string
}
@property (nonatomic, retain) NSString *string
@end

class1.m

@implementation class1
@synthesize string;
-(void)viewDidLoad{
 string = @"IM A STRING AHHH";
 }

现在让我说我想把那个字符串传递给它等于另一个类

class2.h

#import "class1.h"
@interface class2 : UIViewController{


}

@end


class2.m

@implementation class2 

//i want to use the NSString in here, how do i do that?

谢谢, 雅各布

4 个答案:

答案 0 :(得分:2)

首先在第1课中使用[string retain];。 然后,在类2中,导入类1.使类1的对象说cls1。并且您可以通过cls1.string;

访问它

答案 1 :(得分:1)

您可以创建class1的实例,然后只需调用

即可访问string
 [instance string];

 instance.string

如果您不想创建class1的实例,可以定义一个方法,例如

+(NSString*)getString;

然后从class2

调用它
[class1 getString];

答案 2 :(得分:1)

Smiriti的回答是正确的......

你还能做些什么......

覆盖init方法并将NSString作为参数传递并使用。

答案 3 :(得分:1)

如果从类1加载第2类,您可以将该值作为参数发送。

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

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

}

在第1课

[[class 2 alloc]initwithParameters: ]