質問

Can anyone tell me why my code isn't showing any results in my table view. Here is my code. I already tried to change the @"@" into indexPath.row without any luck. I 'm looking for any answer into the right direction. I'm fairly new to xcode and objective-c. I would really appreciate any help.

-(void)waitAndFillPlaylistPool {
    // arrPlaylist -> mutablearray which stores the value of loaded playlist in order to use it later


    [SPAsyncLoading waitUntilLoaded:[SPSession sharedSession] timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *loadedession, NSArray *notLoadedSession)
     {
         // The session is logged in and loaded — now wait for the userPlaylists to load.
         NSLog(@"[%@ %@]: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"Session loaded.");

         [SPAsyncLoading waitUntilLoaded:[SPSession sharedSession].userPlaylists timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *loadedContainers, NSArray *notLoadedContainers)
          {
              // User playlists are loaded — wait for playlists to load their metadata.
              NSLog(@"[%@ %@]: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), @"Container loaded.");

              NSMutableArray *playlists = [NSMutableArray array];
              [playlists addObject:[SPSession sharedSession].starredPlaylist];
              [playlists addObject:[SPSession sharedSession].inboxPlaylist];
              [playlists addObjectsFromArray:[SPSession sharedSession].userPlaylists.flattenedPlaylists];

              [SPAsyncLoading waitUntilLoaded:playlists timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *loadedPlaylists, NSArray *notLoadedPlaylists)
               {
                   // All of our playlists have loaded their metadata — wait for all tracks to load their metadata.
                   NSLog(@"[%@ %@]: %@ of %@ playlists loaded.", NSStringFromClass([self class]), NSStringFromSelector(_cmd),
                         [NSNumber numberWithInteger:loadedPlaylists.count], [NSNumber numberWithInteger:loadedPlaylists.count + notLoadedPlaylists.count]);
                   NSLog(@"loadedPlaylists >> %@",loadedPlaylists);

                   arrPlaylist = [[NSMutableArray alloc] initWithArray:loadedPlaylists];
                   NSLog(@"arrPlaylist >> %@",arrPlaylist);

               }];
          }];
     }];
}


- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section {

    return [arrPlaylist count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

        cell.textLabel.text = [arrPlaylist objectAtIndex:indexPath.row];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


    return cell;
}
役に立ちましたか?

解決

It's hard to tell what you're doing in the method, waitAndFillPlaylistPool, but if this is taking any time to get this data, then you need to call reloadData on your table view ([self.tableView reloadData]) as the last line in that method (or when any async method returns -- I can't tell where that might be in your code).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top