Instanziieren Ich arbeite daran, eine einzelne objektive C-Klasse in Swift ziehen. Ich habe meine Bridging-Header funktioniert gut - Xcode schlägt sogar den Namen der Obj-Klasse, wenn ich es eintippe. Ich habe sogar einen Delegaten Protokoll verweisen auf die gleiche Header-Datei von meiner schnellen Datei verwaltet:Kann Obj C-Klasse in Swift trotz Arbeit Bridging Header
BrowserViewController.swift
import UIKit
class BrowserViewController: UIViewController, BrowserTabViewDelegate {
@IBOutlet weak var browserView: UIView!
@IBOutlet weak var webViewContainer: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let tabview: BrowserTabView = BrowserTabView();
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Sreen cap of the error: Use of unresolved identifier 'BrowserTabView'. Beachten Sie, dass die BrowserTabViewDelegate
keine Probleme hat mit referenzierten . Es kommt aus dem gleichen Objc-Header wie der BrowserTabView. Es schlägt den Klassennamen vor, aber ich kann init nicht darauf zugreifen.
BrowserTabView.h
#import <UIKit/UIKit.h>
@class BrowserTabView;
@protocol BrowserTabViewDelegate <NSObject>
@optional
-(void)BrowserTabView:(BrowserTabView *)browserTabView didSelectTabAtIndex:(NSUInteger)index;
-(void)BrowserTabView:(BrowserTabView *)browserTabView willRemoveTabAtIndex:(NSUInteger)index;
-(void)BrowserTabView:(BrowserTabView *)browserTabView didRemoveTabAtIndex:(NSUInteger)index;
-(void)BrowserTabView:(BrowserTabView *)browserTabView exchangeTabAtIndex:(NSUInteger)index withTabAtIndex:(NSUInteger)toIndex;
-(BOOL)BrowserTabView:(BrowserTabView *)tabView shouldChangeTitle: (NSString*)title;
@end
@interface BrowserTabView : UIView <UIGestureRecognizerDelegate, UITextFieldDelegate>
@property (nonatomic, strong) UIImage *backgroundImage;
@property (nonatomic, readonly) NSUInteger numberOfTabs;
@property (nonatomic, readonly) NSInteger selectedTabIndex;
@property (nonatomic, readonly) NSMutableArray *reuseQueue;
@property (nonatomic, weak) id<BrowserTabViewDelegate> delegate;
-(id)initwithTabTitles:(NSArray *)titles andDelegate:(id)del;
-(void)addTabWithTitle:(NSString *)title;
-(void)setTabTitlesWithArray:(NSArray *)titles;
-(void)setSelectedTabIndex:(NSInteger)selectedTabIndex animated:(BOOL)animation;
-(void)removeTabAtIndex:(NSInteger)index animated:(BOOL)animated;
- (void)handleLongPress:(UILongPressGestureRecognizer *)gr;
- (void)handlePanGesture:(UIPanGestureRecognizer *)sender;
@end
Dies ist das erste Mal, dass ich für diese lange bei einem Thema wie diesem stecken geblieben ... Die meisten der bestehenden Fragen, die ich habe gesehen haben mit dem zu tun schlechte Bridging-Header- aber ich bin ziemlich sicher, dass mir gut ist. Lassen Sie mich wissen, ob ich meine Frage klären kann, und danke im Voraus für jede Hilfe.
WI Sicht-Bridging-header.h
//
// Use this file to import your target's public headers that you would like to expose to Swift.
#import "BrowserTabView.h"
#import "BrowserTab.h"
Entschuldigung wegen der Verwirrung. Könnten Sie den Überbrückungs-Header posten? –
Fertig, am Ende der Frage – Bengovernment
importiert BrowserTab BrowserTabView? sind sie in irgendeiner Weise verwandt? –