Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何访问其他类的委托并更新数据_Iphone - Fatal编程技术网

Iphone 如何访问其他类的委托并更新数据

Iphone 如何访问其他类的委托并更新数据,iphone,Iphone,第一类{ 类数组 皮克维 数据源=self;(此处为ClassArray) pickerivew.delegate=self } 第二类{ 这里是如何获取class1 pickerview的委托并更新class1数组 之后,当从class2弹出到class1时,pickerview必须显示新数组,它来自class2 不应使用appdelegate }在类1中定义数组和选择器视图的属性: @property (nonatomic, retain) NSArray* array; @property

第一类{

类数组

皮克维

数据源=self;(此处为ClassArray)

pickerivew.delegate=self

}

第二类{

这里是如何获取class1 pickerview的委托并更新class1数组

之后,当从class2弹出到class1时,pickerview必须显示新数组,它来自class2

不应使用appdelegate


}

在类1中定义数组和选择器视图的属性:

@property (nonatomic, retain) NSArray* array;
@property (nonatomic, retain) UIPickerView* pickerView;
对于类1的任何实例,您都可以通过

instance = [[Class1 alloc] init];
instance.array = ...
instance.pickerview = ...
编辑:

使用静态类变量的示例:

@interface Class1 : NSObject {
}
+ (NSArray*)getArray;
@end

@implementation Class1
static NSArray* array = nil;

+ (NSArray*)getArray {
    if (! array) {
        array = [[NSArray alloc] initWithObjects:@"Your", @"data", @"goes", @"here", nil];
    }
    return array;
}
@end
然后,您可以使用从任何位置访问阵列

[Class1 getArray]

如何准确地声明数组和pickerview?看起来很奇怪。另外,为什么不让它们成为实例变量,并且您可以在所有类中访问它们呢?类1是您的根对象吗?或者2类的a实例变量是否拥有1类的实例变量?如果不分配class1对象,我们如何访问。这意味着如何将class1的整个对象(即pushee)获取到class2,而class2由class1推送。那么,您必须将数组和pickerview声明为class1中的静态全局变量,并添加一个类方法来访问它们。我不得不说,我不完全理解你的问题。你为什么不想分配class1的一个实例呢?比如[[uiapplication sharedapplication]delegate],那么我们就可以正确地获得appdelegate的ivar。我怎么能这样呢。但是你的第二个答案非常令人印象深刻,请给我一些关于这个的代码示例