我的一个类中有一个名为client的数组,我想在另一个类中使用该数组中的信息。我已经设置了属性并在我的第一堂课中合成了数组。我的第一堂课的代码是
@synthesize client;
...
- (IBAction)testing:(id)sender {
NSString *textContent = myTextView.text;
textContent = [textContent stringByReplacingOccurrencesOfString:@" " withString:@""];
client = [textContent componentsSeparatedByString:@"."];
NSLog(@"%@", client);
}
在我的第二堂课中,我尝试为我的第一堂课输入h文件,然后只是访问数组。我正在使用的代码是
- (IBAction)ButtonStuff:(id)sender {
ArrayManipulationViewController *myClass = [[ArrayManipulationViewController alloc]init];
NSLog(@"Second Interface");
NSArray *test = myClass.client;
NSLog(@"%@", test);
}
答案 0 :(得分:0)
要从多个类访问对象,常见的方法是在父类中声明对象,然后将该对象的共享实例传递给需要访问的所有子类。例如,您可以在AppDelegate中声明数组,并在子类中设置数组属性,并将数组实例从AppDelegate传递到所有子类。
例如:在你的app委托中创建一个NSArray(myArray),然后在AppDelegate植入中,使用属性将myArray实例传递给子视图控制器。
或者,如果您愿意;您可以在第一个类中声明数组,然后使用属性将数组实例从第一个类传递到第二个类。然后,由于INSTANCE是相同的,您的第二堂课将进行任何更改。
更新的答案:
对于第二种方法,最好在第一个类实现中声明数组,然后在实例化第二个类时,使用属性将数组实例传递给第二个类。在此示例中,您需要在第二个类中具有NSArray属性才能使用[secondClassInstance setClient: client];
您的第二个类界面可能如下所示:
@interface SecondClass : NSObject
{
NSArray *client;
}
@property (nonatomic, retain) NSArray *client; // don't forget to synthesize
@end
然后,在第一堂课中,您可以执行以下操作来传递您的数组实例:
NSArray *client = [[NSArray alloc] initWithObjects:@"Object 1", @"Object 2"];
//...
SecondClass *secondClass = [[SecondClass alloc] init];
[secondClass setClient: client]; // passing the original client instance here
// don't forget to release secondClass instance when finished