Mam istniejącą aplikację Sample Objective-C, która używa SDK Salesforce. Próbuję go przekonwertować, aby używać Swift w jednej klasie na raz. Salesforce SDK ma klasę o nazwie "SFRestRequest.h", która ma delegata "SFRestDelegate".Próba użycia metody delegatów napisanej w Objective-C w Swift rzuca "Nie można znaleźć deklaracji protokołu"
W Objective C, mam klasy o nazwie "RootViewController.h", która jest podklasą UITableViewController. Implementuje SFRestDelegate. To działa dobrze.
//RootViewController.h
#import <UIKit/UIKit.h>
#import "SFRestAPI.h"
@interface RootViewController : UITableViewController <SFRestDelegate> {
NSMutableArray *dataRows;
IBOutlet UITableView *tableView;
}
Próbuję utworzyć plik RootVC.swift zastąpić RootViewController Objective-C klasy.
Mam pomostowego plik nagłówka, który importuje wszystkie te nagłówki, które są importowane w Objective-C
//SwiftForce-Bridging-Header.h
#import "SFRestAPI.h"
#import "SFRestRequest.h"
Mój plik RooVC.Swift wygląda następująco:
import UIKit
class RootVC: UITableViewController,SFRestDelegate {
..
..
}
Teraz, gdybym Command + kliknij na SFRestDelegate, poprawnie przechodzi do implementacji protokołu. Jednakże, jeśli staram się budować, mam .. "nie można odnaleźć protokół deklaracja SFRestDelegate błąd
SWIFT_CLASS("_TtC10SwiftForce6RootVC")
@interface RootVC : UITableViewController <SFRestDelegate>
@property (nonatomic) NSArray * dataRows;
- (instancetype)initWithStyle:(UITableViewStyle)style OBJC_DESIGNATED_INITIALIZER;
- (void)viewDidLoad;
- (void)didReceiveMemoryWarning;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
@end
wdzięczni za każdą pomoc można przetestować pobierając aplikację z:. https://github.com/rajaraodv/SwiftForce
Czy MytDelegate jest literówką? – Dash
Nie. To był tylko literówka, kiedy to napisałem. –