我正在使用 iOS SDK 8.3 并尝试关注this tutorial在监视工具包应用中创建表格。
我在iWatch应用程序的接口控制器上添加了一个表,然后将其链接到我的InterfaceController。我创建了一个自定义行类,并将该行链接到行控制器类。然后我在行中添加了几个项目并将它们链接到行控制器类中的出口。但是我遇到了一些错误:
这是我的接口控制器类:
#import <WatchKit/WatchKit.h>
#import <Foundation/Foundation.h>
@interface InterfaceController : WKInterfaceController
@property (strong, nonatomic) NSArray *devicesArray;
@property (weak, nonatomic) IBOutlet WKInterfaceGroup *devicesTable;
@end
这是触发错误的代码:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
NSLog(@"%@ initWithContext", self);
self.devicesArray = @[@"type A", @"type B"];
[self.devicesTable setNumberOfRows:self.devicesArray.count withRowType:@"MyTableRowController"];
[self.devicesTable enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
MyTableRowController* row = [self.devicesTable rowControllerAtIndex:idx];
[row.deviceType setText: (NSString*)obj];
[row.logo setImage:[UIImage imageNamed:(NSString *)obj]];
}];
答案 0 :(得分:2)
您的devicesTable
被声明为WKInterfaceGroup
,它支持您正在呼叫的方法。我相信你打算使用WKInterfaceTable
。您可能无意中从组中拖动了表的连接,而不是Interface Builder中的表。
答案 1 :(得分:1)
看一下教程,似乎有点困惑。
使用的WKInterfaceGroup
适用于您创建的"MyTableRowController"
子类。
主"InterfaceController"
应将devicesTable作为WKInterfaceTable
Apple Doc's on WKInterfaceTable
Apple Doc's on WKInterfaceGroup