0
我試圖在Xcode 6.0.1中使用Swift中的WMATweetView
。我已經成功地在Objective-C中使用它。在我的Swift項目中,我創建了一個橋樑並將其導入。但是,我遇到的問題是不會調用分接的func
。當我設置tapped方法(例如,urlTapped)或者我忽略了某些東西時,可能我做錯了什麼。我已在WMATweetView.m
的NSLog()
確保至少該方法被調用:WMATweetView與Swift和Xcode 6.0.1
- (void)viewTapped:(UITapGestureRecognizer *)tapRecognizer
{
NSLog(@"viewTapped");
if (tapRecognizer.state != UIGestureRecognizerStateEnded)
{
return;
}
// entity is always nil here urlTapped is not null
WMATweetEntity* entity = [self entityForGestureRecognizer:tapRecognizer];
if ([entity isKindOfClass:[WMATweetURLEntity class]] && self.urlTapped != NULL)
{
self.urlTapped((WMATweetURLEntity *)entity, tapRecognizer.numberOfTouches);
}
...
}
當我調試viewTapped方法我看到urlTapped不爲空,但實體對象在方法始終是。
這裏的基本代碼我在viewDidLoad中使用實例WMATweetView
:
var tweetView = WMATweetView(text: "Tweet with a link http://example.com, screen name @wemakeapps, #hashtag, more text, another link http://example.net @ZarroBoogs #ios moo", frame: CGRectMake(100, 100, 200, 200))
tweetView.setupDefaults() // This is required otherwise there's no "viewTapped" print at all
self.view.addSubview(tweetView)
在我ViewController
類我有這樣的:
func tapped(entity : WMATweetURLEntity!, numberOfTouches: UInt)
{
println("tapped")
}
這裏有不同的方法我試過設置方法(viewDidLoad
):
// 1
let t : URLEntityTappedCallbackBlock = tapped
tweetView.urlTapped = t
// 2
tweetView.urlTapped = tapped
// 3
tweetView.urlTapped = {(entity : WMATweetURLEntity!, numberOfTouches: UInt) ->() in
println("urlTapped")
}
有沒有人有任何線索我做錯了什麼?或者有其他推特標籤控件的任何提示(我試過STTweetLabel
以及它似乎隨機崩潰?)?
我剛剛在Swift中成功實現了這個。嘗試返回Void而不是():) – 2014-12-28 22:02:04