我有这样的方法
$( ".eventPeriod" ).droppable({
tolerance: 'touch',
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" );
return false;
}
});
如何在一个块中将参数传递给它?我试过这样的。但它给我一个语法错误,-(void)GetPostPreperation :(NSMutableURLRequest *)request :(BOOL)isGet :(NSMutableDictionary *)jsonBody :(void(^)(NSString*)) compblock
这是我尝试的方式
Expected Expression
这就是我定义块的方式
[self GetPostPreperation:request :isGet :jsonBody :(^NSString*)str
{
return str;
}];
我想在typedef void(^myCompletion)(NSString *);
方法中为块参数分配NSString
值,然后检查并从块调用方法返回它。我该怎么做?请帮我。
感谢
答案 0 :(得分:2)
[self GetPostPreperation:nil :YES :nil :^(NSString * string) {
//your code
NSLog(@"%@", string);
}];
我还建议您更改方法定义如下:
-(void)GetPostPreperation :(NSMutableURLRequest *)request
:(BOOL)isGet :(NSMutableDictionary *)jsonBody
:(void(^)(NSString* string)) compblock
在输入此方法时,这将为您提供自动建议,您只需按Enter键即可创建它。
答案 1 :(得分:1)
以这种方式使用它,这里str
是一个输入而不是
[self GetPostPreperation:request :true : jsonBody :^(NSString * str) {
//here use
NSLog(@"%@",str);
}];
更新
不要从此块返回任何内容。块类型为void(^)(NSString*)
,返回无效
答案 2 :(得分:1)
使用String参数创建块并将该块传递给方法。
如下所示
void (/*Block name*/^failure)(/*block formal parameter*/NSError *) = ^(/*block actual parameter*/NSError *error) {
NSLog(@"Error is:%@",error);
};
[self myMethod:failure];
答案 3 :(得分:0)
在块中声明变量名,以便在使用该块时可以访问它(字符串)
.menu-open .content {
transform: translateX(40%) scale(0.85);
}
当你的方法有多个参数时,它总是会像下面那样写(即isGet:(BOOL)isGet)所以在调用该方法时很容易
//带块的方法
// typedef of block
typedef void(^myCompletion)(NSString * string);
NSMutableURLRequest * req = [NSMutableURLRequest new];
NSMutableDictionary * dict = [NSMutableDictionary new];
/// method calling
[self GetPostPreperation:req
isGet:true
jsonBody:dict
block:^(NSString *string) {
if ([string isEqualToString:@"xyz"]) {
}
else
{
}
}];