2014-10-04 49 views
0

我试图在Xcode 6.0.1中使用Swift中的WMATweetView。我已经成功地在Objective-C中使用它。在我的Swift项目中,我创建了一个桥梁并将其导入。但是,我遇到的问题是不会调用分接的func。当我设置tapped方法(例如,urlTapped)或者我忽略了某些东西时,可能我做错了什么。我已在WMATweetView.mNSLog()确保至少该方法被调用: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以及它似乎随机崩溃?)?

+0

我刚刚在Swift中成功实现了这个。尝试返回Void而不是():) – 2014-12-28 22:02:04

回答

-1

我刚刚在Swift中成功实现了这一点。尝试返回Void而不是():)