Я только что застрял. У меня есть 2 контроллера представления, один из которых "WatchListViewController
", а второй - "QuotesViewController
". Прежде всего я нажимаю от WatchListViewController
до QuotesViewController
, и мое действие записано здесь.
-(IBAction)qoutes
{
QuotesViewController *nextController = [[QuotesViewController alloc] initWithQoutes:symbolForQoutes :exchangeForQoutes :appDelegate.s :code :exchange:exchangeCodeForQoutes];
[self.navigationController pushViewController:nextController animated:YES];
}
работает отлично, мой initWithQoutes
метод также работает хорошо, тогда в методе ViewDidLoad
я посылаю некоторый запрос на сервер через сокет, и он дает ответ, и ответ получен в моей функции, которая находится в WatchListViewController
:
void receiveData(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info)
{
char *buffer = (char *)CFDataGetBytePtr((CFDataRef)data); //getting data from server side in a char type veriable "buffer"
NSString *result = [NSString stringWithUTF8String:buffer]; // getting data in a string from my buffer
if (strstr(buffer, "QRES") != NULL) { //if this is a qoutes response
splits = [result componentsSeparatedByString:@"|"]; //separating string by "|"
body = [splits objectAtIndex:1]; // choosing index "1"
splits = [body componentsSeparatedByString:@","]; // separating by ","
QuotesViewController *quotesViewController = [[QuotesViewController alloc] init];
[quotesViewController initWithData:splits];
return;
}
}
ответ получен и он передается методу initWithData
с массивом параметров «разделяется». Я получаю этот массив в моем initWithData и назначаю его другому массиву (generalArray
), теперь общий массив назначен моему tableView
но до этого reloadData
tableView его управление возвращается к receiveData
и возвращается и снова возвращается к моему QuotesViewController
и перезагружается представление таблицы, но в то время мой массив (generalArray
) потерял свое значение, и значения не загружен в виде таблицы.
Пожалуйста, помогите мне, я застрял здесь.
код метода initWithData:
-(void)initWithData:(NSArray *)_general
{
general = [[NSMutableArray alloc] init]; //initializing array that can be accessed out of the class
for (int i=0; i< [_general count]; i++) {
[general addObject:[_general objectAtIndex:i]]; }
NSLog(@"%@", general); [self generalValues];
}
-(void)generalValues{
[generalTableView reloadData];
}