2015-02-09 6 views
0

Я использую Parse, чтобы создать этот вид таблицы, и пытаюсь выяснить, как получить данные таблицы Parse в массив, поэтому я могу передать его в WatchKit InterfaceController, чтобы показать то же самое вещь?Получить массив из запроса Parse

Так что я хочу показать в интерфейсе WatchKit точно, что отображается в интерфейсе iPhone.

Вот что у меня есть, дайте мне знать, если я могу добавить что-нибудь, что было бы полезно:

TableVC.m:

- (id)initWithCoder:(NSCoder *)aCoder 
{ 
    self = [super initWithCoder:aCoder]; 
    if (self) { 
     self.parseClassName = @"na"; 
     self.textKey = @"dateTime"; 
     self.pullToRefreshEnabled = YES; 
     self.paginationEnabled = NO; 
    } 
    return self; 
} 
- (PFQuery *)queryForTable 
{ 
    PFQuery *query = [PFQuery queryWithClassName:self.parseClassName]; 

    return query; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object 
{ 
    static NSString *simpleTableIdentifier = @"RecipeCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
    } 
    UILabel *homeLabel = (UILabel*) [cell viewWithTag:101]; 
    homeLabel.text = [object objectForKey:@"test"]; 

    UILabel *dateLabel = (UILabel*) [cell viewWithTag:102]; 
    dateLabel.text = [object objectForKey:@"dateTime"]; 

    return cell; 
} 

Parse data:

enter image description here

TableVC.m:

enter image description here

У меня уже есть основные WatchKit файлы и Раскадровка настройки. Я жестко закодировал массив, чтобы проверить, что он обычно работает. Но теперь мне просто нужно получить данные от Parse туда и не уверен, что мне нужно сделать запрос, а затем превратить это в общедоступный array?

EDIT:

Вот мой запрос:

PFQuery *query2 = [PFQuery queryWithClassName:@"nba"]; 
[query2 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    if (!error) { 
     // The find succeeded. 
     NSLog(@"Objects 2: %@", objects); 
     } 
    } else { 
     // Log details of the failure 
     NSLog(@"Error 2: %@ %@", error, [error userInfo]); 
    } 
}]; 

Вот мой NSLog:

NSLog(@"Objects 2: %@", objects);

консоли:

2015-02-09 21:06:30.845 SimpleTable[8373:1284663] Objects 2: (
    "<na: 0x7ff3f8e40880, objectId: cOrjeAmwJh, localId: (null)> {\n away = Cav;\n date = \"04/19/2015\";\n dateTime = \"April 19, 2015, 16:00\";\n gNumber = 1;\n home = Bul;\n matup = \"Ca\";\n ro = \"Ro \";\n test = \"Test 2\";\n tv = T;\n}", 

ответ

3

Если вам нужен массив, принеси его асинхронно в методе снаружи метод queryForTable, получить его так:

PFQuery *query = [self queryForTable]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    if (!error) { 
     // objects is the array for this table 
     NSMutableArray *array = [@[] mutableCopy]; 
     for (PFObject *object in objects) { 
      NSLog(@"we got an object with dateTime = %@", [object objectForKey:@"dateTime"]); 
      [array addObject:[object objectForKey:@"dateTime"]]; 
      // you can prove this with any of your keys: away, number, home, mat up, etc. 
     } 
    } 
}]; 
+0

Спасибо за ответ, вот что я пытался. Они проделали основную работу в документах для чего-то подобного, но я не смог понять, что происходит в объекте '// - массив для этой таблицы'. Когда я использую NSLog для регистрации, я, кажется, просто получаю указатели, а не массив.Я отправил код выше в конце моего первоначального вопроса. Есть идеи? – SRMR

+0

Он выглядит как здоровый ответ от синтаксического анализа, если вы читаете тарабарщину, вы можете видеть пары ключевых значений для таких ключей, как dateTime, away, gNumber, mat up и т. Д., См. Edit для кода, чтобы доказать, что у вас есть массив pfobjects , – danh

+0

Правильно, у меня вроде бы было что-то вроде этого, и попробовал версию этого, кроме того, что я был смущен, потому что, казалось, он просто повторял его и выплевывал все отдельные объекты (как вы можете видеть в своем коде это 'NSLog's один 'dateTime' за раз?) вместо того, чтобы дать мне« массив ». Знаете ли вы, как вы сможете получить «массив» из 'dateTime'? Например, есть ли строка или два кода, которые вы бы добавили к тому, что у вас уже есть, что превратит все эти 'dateTime' в' массив'? Благодаря! Я почти на месте! – SRMR

0

если вы просто хотите, чтобы передать объекты в массив вы можете сделать так, как это или вариации:

- (PFQuery *)queryForTable 
{ 
PFQuery *query = [PFQuery queryWithClassName:self.parseClassName]; 

    self.someArray = [query findObjects]; 

return query; 
} 

Эталонное

+1

Я думаю, что это очень плохая идея. То, что вы сделали, является причиной того, что запрос запускается * синхронно * всякий раз, когда суперкласс класса PFQueryTableVC вызывает метод queryForTable, который есть кто знает, когда. – danh

Смежные вопросы