如何将字符串值从一个类传递到另一个类

时间:2011-09-26 06:43:07

标签: iphone

我只想知道如何将字符串值从一个类传递给另一个类。

实际上我有两个类。在第一课我从数组中获取字符串值,我只想将这个字符串值用于我的第二个类。现在我不知道如何在这两个类之间传递值。请给出我有一些想法。我应该使用一些类方法来传递值。但我不知道如何使用这个类方法。如何创建类方法来设置一个类的值,然后获得相同的值来自班级方法。

感谢您的帮助

4 个答案:

答案 0 :(得分:0)

Class1.h:

@interface Class1 : NSObject
{
    NSArray *arr;
}

- (NSString *)myString;

@end

Class1.m:

@implementation Class1

- (NSString *)myString
{
    return [arr objectAtIndex:0];
}

@end

Class2.h:

@interface Class2 : NSObject
{
}

- (void)methodThatUsesStringFromClass1:(Class1 *)c1;

@end

Class2.m:

@implementation Class2

- (void)methodThatUsesStringFromClass1:(Class1 *)c1
{
    NSLog(@"The string from class 1 is %@", [c1 myString]);
}

@end

答案 1 :(得分:0)

最简单的方法是在类中定义要传递对象的公共@property,例如,对于NSString:

// CustomClassA.h
@interface CustomClassA : NSObject
{
}
@property (nonatomic, retain) NSString *publicString;
@end

// CustomClassA.m
@implementation CustomClassA
@synthesize publicString;
@end

在发件人中:

//somewhere defined CustomClassA objectA;
[objectA setPublicString:@"newValue"];

但是你应该明白retain@synthesize和其他的含义。这也不是你目前的问题。

答案 2 :(得分:0)

你可以使用appDelegate.YourStringVaraible = @“存储你的字符串”;

然后使用appDelegate.YourStringVaraible在任何类中使用此YourStringVaraible

答案 3 :(得分:0)

通过覆盖init方法传递字符串参数。

Class1.m

@implementation Class1

Class2 *class2 = [[Class2 alloc] initWithString:myString];
...


@end

Class2.h

@interface Class2 : NSObject
{
NSString *string2;
}
@end

Class2.m

-(id) initWithString:(NSString*)str  {
    self = [super init];     
    if(self) {    
        string2 = str;
    }     
    return(self); 
}