Как вызвать массив, строку или любой объект, содержащий данные, в другой класс iphone - PullRequest
1 голос
/ 19 января 2012

У меня есть 2 класса в моем приложении.View1 & View2;я хочу использовать такой объект, как array, strin, label.text в другом классе, когда я использовал их, покажет null;

View1.h:
{
NSMutableArray *array;
IBOutlet UILabel *lbl;
NSString *str;
}

@property(nonatomic,retain) NSMutableArray *array;
@property(nonatomic,retain)IBOutlet UILabel *lbl;
@property(nonatomic,retain) NSString *str;

@end;

View1.m

@synthesize array;
@synthesize lbl;
@synthesize str;


array = (1,2,3,..., nil) some dataa
str = @"HAI";
lbl.text = @"Text in label aaaa";

NSLog( @" %@", array );
NSLog( @" %@", lbl.text );
NSLog( @" %@", str );

дает правильный вывод

но в View2:

@implementation View2
    #import "View1"
    .
..
....
View1 *one = [View1 alloc]initwit.....................];

NSLog( @" %@", one.array );
NSLog( @" %@", one.lbl.text );
NSLog( @" %@", one.str );

печатает нулевое значение

почему?что делать?

спасибо заранее ..

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Очень просто. Вы можете выделить этот массив в вашем AppDelegate, а затем вызвать его из ваших UIViews. Или вы можете выделить его в одном из ваших UIViews и установить этот массив в AppDelegate. Пример:

//UIView 1 
NSArray *array = [[NSArray alloc] init];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.mySharedArray = array;

//UIView2
 MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
 NSArray *array = appDelegate.mySharedArray;

Вот так

1 голос
/ 19 января 2012

Вы уверены, что задаете начальные значения для переменных из view1?

, пожалуйста, убедитесь, что метод init для view1 дает некоторые значения аргументу, т.е. в

initwit..............

убедитесь, чтоу вас есть:.

array = (1,2,3,..., nil) some dataa
str = @"HAI";
lbl.text = @"Text in label aaaa";

кстати, это неверный код для инициализации массива, как вы сделали, вы должны использовать один из методов инициализации NSArray.

...