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