0

我有这个方法:

- (void)retweet:(NSString *)idString {
    STTwitterAPI *twitter;
    [twitter postStatusRetweetWithID:idString successBlock:^(NSDictionary *status) {
        UIAlertView *retweetSuccess = [[UIAlertView alloc]initWithTitle:@"Retweeted!" message:@"You have retweeted this tweet." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [retweetSuccess show];

    } errorBlock:^(NSError *error){

    }];
}

我的表格视图单元格中也有一个 uibutton,所以我正在使用[cell.retweetButton addTarget:self action:@selector(retweet:)forControlEvents:UIControlEventTouchUpInside];

如何使用我的 idString 作为选择器的方法参数的参数?

4

2 回答 2

0

使用目标 c 关联对象

#import <objc/runtime.h>

static const void *idStringKey = &idStringKey;

@implementation UIButton (idString)

- (void)setIDString:(NSString *)idString
{
   objc_setAssociatedObject(self, idStringKey, idString, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (NSString *)idString
{
   return objc_getAssociatedObject(self, idStringKey);
}

@end

利用

cell.retweetButton.idString = @"Any string here"
于 2015-03-03T13:29:13.160 回答
0

如果 id 字符串来自按钮,请将您的操作方法参数更改为 paramButton 并访问它。如果它来自其他地方,那么您只需从它来自的任何地方获取它。

在任何情况下,您的操作方法都必须具有 :(UIButon *)paramButton 参数。( (id)sender 作为替代方案也可以接受)。

于 2015-03-03T13:29:11.400 回答