菜鸟教程小白 发表于 2022-12-12 18:48:08

ios - PFQueryTableView 在新数据更新或每分钟使用 Parse 刷新时自动刷新


                                            <p><p>目前我正在学习本教程 <a href="http://www.appcoda.com/ios-programming-app-backend-parse/" rel="noreferrer noopener nofollow">http://www.appcoda.com/ios-programming-app-backend-parse/</a> </p>

<p>但是当来自 parse.com 的数据自动更新时,我希望用新数据刷新 tableviewcontroller。我不希望用户总是不得不拉动刷新。</p>

<p>或者也许每分钟刷新一次?</p>

<p>听说reloaddata,但是代码怎么实现呢?</p>

<pre><code>- (id)initWithCoder:(NSCoder *)aCoder
{
self = ;
if (self) {
   // The className to query on
   self.parseClassName = @&#34;Recipe&#34;;

   // The key of the PFObject to display in the label of the default cell style
   self.textKey = @&#34;name&#34;;

   // Whether the built-in pull-to-refresh is enabled
   self.pullToRefreshEnabled = YES;

   // Whether the built-in pagination is enabled
   self.paginationEnabled = NO;
}
return self;
}

- (PFQuery *)queryForTable
{
PFQuery *query = ;

return query;
}

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

UITableViewCell *cell = ;
if (cell == nil) {
   cell = [ initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

// Configure the cell
PFFile *thumbnail = ;
PFImageView *thumbnailImageView = (PFImageView*);
thumbnailImageView.image = ;
thumbnailImageView.file = thumbnail;
;

UILabel *nameLabel = (UILabel*) ;
nameLabel.text = ;

UILabel *prepTimeLabel = (UILabel*) ;
prepTimeLabel.text = ;

return cell;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在.h文件中</p>

<pre><code>@property (nonatomic, strong) NSTimer *fetchTimer;
@property (nonatomic, strong) NSArray *items;
</code></pre>

<p>在 .m 文件中</p>

<pre><code>- (void)viewDidLoad
{
    NSTimer *timer = [NSTimer timerWithTimeInterval:3600
                                             target:(id)self
                                           selector:@selector(fetch)
                                           userInfo:nil
                                          repeats:YES];
    self.fetchTimer = timer;
}

- (void)fetch
{
    PFQuery *query = ;
    ;
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

      self.items = ;
      ;
    }];
}
</code></pre>

<p>1) 设置一个 3600 间隔时间的 NSTimer 并触发获取数据功能。
2) 获取数据后只需调用 即可。这完全取决于您如何设计编码结构。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - PFQueryTableView 在新数据更新或每分钟使用 Parse 刷新时自动刷新,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21751714/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21751714/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - PFQueryTableView 在新数据更新或每分钟使用 Parse 刷新时自动刷新