0

登録ユーザーをParse.comのデータブラウザ(TableViewコントローラー内)に視覚化し、選択したセルのデータを新しいビューコントローラーにステップするアプリケーションを作成しています..

私の問題は、新しいビュー コントローラーで画像を表示できないことです。どうすればよいか教えてください。私はさまざまなフォーラムで argormento を理解し調査しようとしていますが、フォーラムで回答を見つけることができず、Parse は長い間回答がありませんでした。

これは私が取り組んでいるコードです:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {        if ([segue.identifier isEqualToString:@"Visual"]){

           NSIndexPath *indexPath = [self.Tork indexPathForSelectedRow];
           PFObject *object = [self.objects objectAtIndex:indexPath.row];
           ViewController  *detailViewController = [segue destinationViewController];
           detailViewController.oggetto = object;  } }

テーブルビュー:

- (PFQuery *)queryForTable {
    PFQuery *query = [PFQuery queryWithClassName:@"_User"];
    [query whereKeyExists:@"username"];
    [query whereKeyExists:@"picture"];
    [query whereKeyExists:@"email"];

    // If no objects are loaded in memory, we look to the cache first to fill the table
    // and then subsequently do a query against the network.
    if ([self.objects count] == 0) {
        query.cachePolicy = kPFCachePolicyCacheThenNetwork; }

    [query orderByAscending:@"username"];        
    return query;    }




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

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

    // Configure the cell
    cell.textLabel.text = [object objectForKey:@"username"];
    cell.detailTextLabel.text =  [object objectForKey:@"email"]];
   cell.imageView.image = [UIImage imageNamed:@"none.png"];


    PFFile *file = [object objectForKey:@"picture"];
    [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        cell.imageView.image =[UIImage imageWithData:data];

    }];

    return cell;
}
4

1 に答える 1

0

返信ありがとうございます:) ...問題は解決したようです..これに備えて次のように変更しましたが、現在は機能しています! どう思いますか?あなたは適しているようですか?今まで私のアプリがクラッシュすることはありませんでした。

PfQueryTableViewController.m

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"Visual"]){

        NSIndexPath *indexPath = [self.tavola indexPathForSelectedRow];
        PFObject *object = [self.objects objectAtIndex:indexPath.row];
        PFFile *file = [self.objects objectAtIndex:indexPath.row ];

        ViewController  *detailViewController = [segue destinationViewController];
        detailViewController.oggetto = object;
        detailViewController.file = file;
    }
}

DetailViewcontroller.m

 - (void)viewDidLoad
{
    [super viewDidLoad];
    self.nome.text = [oggetto objectForKey:@"username"];
    self.email.text = [oggetto objectForKey:@"email"];

    PFFile *imageFile = [oggetto objectForKey:@"foto"];
    [imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        self.image.image =[UIImage imageWithData:data];                       
    }];   
}

今、コードのこの部分に問題があり、ディスプレイに検索バーを追加しています。コードはエラーを返しませんが、検索を開始しても結果が表示されませんでした。これがコードです。アイデアはありますか?

- (void)callbackLoadObjectsFromParse:(NSArray *)result error:(NSError *)error {
    if (!error) {
        NSLog(@"Successfully fetched %d entries", result.count);

         [self.searchResults addObjectsFromArray: result];

    } else {
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }

}

- (void)filterResults:(NSString *)searchTerm {

    [self.searchResults removeAllObjects];

    PFQuery *query = [PFQuery queryWithClassName: @"_User"];
    [query whereKeyExists:@"username"];  //this is based on whatever query you are trying to accomplish
    [query whereKeyExists:@"foto"]; //this is based on whatever query you are trying to accomplish
    [query whereKeyExists:@"email"];
    query.cachePolicy = kPFCachePolicyNetworkOnly;
    query.limit = 50;
    [query findObjectsInBackgroundWithTarget:self selector:@selector(callbackLoadObjectsFromParse:error:)];


}


- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:  (NSString *)searchString {
    [self filterResults:searchString];
    return YES;
}

ログにはこれが表示されますが、デバイスに結果が表示されません: (

AssertMacros: queueEntry、ファイル: / SourceCache/IOKitUser/IOKitUser-920.1.11/hid.subproj/IOHIDEventQueue.c、行: 512 09/13/2013 01:34:50.537 Unipot v.02 [412:60 b] 正常にフェッチされました9 エントリー

于 2013-09-12T23:45:49.997 に答える