我只想知道如何将字符串值从一个类传递给另一个类。
实际上我有两个类。在第一课我从数组中获取字符串值,我只想将这个字符串值用于我的第二个类。现在我不知道如何在这两个类之间传递值。请给出我有一些想法。我应该使用一些类方法来传递值。但我不知道如何使用这个类方法。如何创建类方法来设置一个类的值,然后获得相同的值来自班级方法。
感谢您的帮助
答案 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);
}