iOS 8 Today小部件在加载时不会显示

时间:2015-02-04 21:51:34

标签: ios objective-c xcode6 ios8-extension notificationcenter

我创建了简单的时间表小部件,但是当我尝试在iOS模拟器中测试它时,它会显示类似

的内容
  

时间表[4012:108619]无法从3965继承CoreMedia权限:( null)

小部件没有显示出来。 这是我的代码。

#import "TodayViewController.h"
#import <NotificationCenter/NotificationCenter.h>

@interface TodayViewController () <NCWidgetProviding, UITableViewDataSource, UITableViewDelegate>


@end

@implementation TodayViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableCell"];
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 7;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
    // Perform any setup necessary in order to update the view.

    // If an error is encountered, use NCUpdateResultFailed
    // If there's no update required, use NCUpdateResultNoData
    // If there's an update, use NCUpdateResultNewData

        completionHandler(NCUpdateResultNewData);
    }

    @end

2 个答案:

答案 0 :(得分:1)

该消息一直出现在今天的小部件中,通常并不表示任何内容确实存在错误。除非您遇到某些您未提及的问题,否则请忽略它。

您的小部件未显示您的代码的原因并不能说明您需要多少空间。您需要设置self.preferredContentSize。使用窗口小部件中的表视图,您通常会执行以下操作:

self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, self.objects.count * 44.0);

self.objects替换为您用于表格数据的任何数组,并将44替换为您的单元格高度。

您的代码使用了7行,这可能太多了。有关原因的讨论,请参阅Issue in Widgets in landscape mode

答案 1 :(得分:0)

Swift 4版本:

preferredContentSize = CGSize(width: preferredContentSize.width, 
                              height: CGFloat(objects.count) * 44.0)