1

我创建了简单的时间表小部件,但是当我尝试在 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
4

2 回答 2

1

该消息始终与今天的小部件一起出现,通常并不表示任何实际错误。除非您遇到某种您没有提到的问题,否则请忽略它。

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

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

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

您的代码使用 7 行,这可能太多了。有关原因的讨论,请参阅横向模式下的小部件中的问题。

于 2015-02-04T23:00:17.950 回答
0

斯威夫特 4 版本:

preferredContentSize = CGSize(width: preferredContentSize.width, 
                              height: CGFloat(objects.count) * 44.0)
于 2018-11-22T14:59:56.070 回答