0

iOS SDK 8.3を使用しており、このチュートリアルに従ってウォッチ キット アプリでテーブルを作成しようとしています。

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]];

    }];

ここに画像の説明を入力

4

2 に答える 2

2

Yourは、呼び出しているメソッドをサポートするdevicesTableとして宣言されています。WKInterfaceGroupを使用するつもりだったと確信していますWKInterfaceTable。Interface Builder のテーブルではなく、グループからテーブルの接続を誤ってドラッグした可能性があります。

于 2015-04-15T13:27:05.687 に答える
1

チュートリアルを見ると、少し混乱しているようです。

使用WKInterfaceGroupされる は、"MyTableRowController"作成したサブクラス用です。

メイン"InterfaceController"には devicesTable が必要ですWKInterfaceTable

WKInterfaceTableの Apple Doc

WKInterfaceGroupの Apple Doc

于 2015-04-15T13:28:47.357 に答える