将 Objective-C 函数调用翻译成 Swift
Translating Objective-C function call to Swift
这是我目前所拥有的...
func rightButtonItemsInRevealTableViewCell(revealTableViewCell: SWRevealTableViewCell!, handler:((Bool) -> (NSArray))!) {
var item1: SWCellButtonItem = itemWithTitle("Delete", {
(var success) in
println("\(success)")
}
});
item1.backgroundColor = UIColor.redColor();
item1.tintColor = UIColor.whiteColor();
item1.width = 75;
return item1;
}
我发现 this 有点帮助,但我仍然遇到一些错误。
这是原来的Objective-C代码...
- (NSArray*)rightButtonItemsInRevealTableViewCell:(SWRevealTableViewCell *)revealTableViewCell {
SWCellButtonItem *item1 = [SWCellButtonItem itemWithTitle:@"Delete" handler:^(SWCellButtonItem *item, SWRevealTableViewCell *cell)
{
NSLog( @"Delete");
}];
item1.backgroundColor = [UIColor redColor];
item1.tintColor = [UIColor whiteColor];
item1.width = 75;
return @[item1];
}
这是在header声明中
+ (instancetype)itemWithTitle:(NSString*)title handler:(BOOL(^)(SWCellButtonItem *item, SWRevealTableViewCell* cell))handler;
以及.m文件中的定义
+ (instancetype)itemWithTitle:(NSString *)title handler:(BOOL(^)(SWCellButtonItem *, SWRevealTableViewCell *))handler
{
return [[SWCellButtonItem alloc] initWithTitle:title image:nil handler:handler];
}
func rightButtonItemsInRevealTableViewCell(revealTableViewCell : UITableViewCell) -> NSArray {
var item1 : SWCellButtonItem = SWCellButtonItem("Delete", handler: ((item : SWCellButtonItem, cell : SWRevealTableViewCell) -> (Void) in {
NSLog("delete")
}))
item1.backgroundColor = UIColor.redColor()
item1.tintColor = UIColor.whiteColor()
item1.width = 75
return [item1];
}
希望我没有忘记任何东西,试试吧!
正确的解决方案是
let item : SWCellButtonItem = SWCellButtonItem(title:"Delete", handler:{(item:SWCellButtonItem!, cell:SWRevealTableViewCell!)->(Bool) in
println("Delete handler")
return false
} )
这是我目前所拥有的...
func rightButtonItemsInRevealTableViewCell(revealTableViewCell: SWRevealTableViewCell!, handler:((Bool) -> (NSArray))!) {
var item1: SWCellButtonItem = itemWithTitle("Delete", {
(var success) in
println("\(success)")
}
});
item1.backgroundColor = UIColor.redColor();
item1.tintColor = UIColor.whiteColor();
item1.width = 75;
return item1;
}
我发现 this 有点帮助,但我仍然遇到一些错误。
这是原来的Objective-C代码...
- (NSArray*)rightButtonItemsInRevealTableViewCell:(SWRevealTableViewCell *)revealTableViewCell {
SWCellButtonItem *item1 = [SWCellButtonItem itemWithTitle:@"Delete" handler:^(SWCellButtonItem *item, SWRevealTableViewCell *cell)
{
NSLog( @"Delete");
}];
item1.backgroundColor = [UIColor redColor];
item1.tintColor = [UIColor whiteColor];
item1.width = 75;
return @[item1];
}
这是在header声明中
+ (instancetype)itemWithTitle:(NSString*)title handler:(BOOL(^)(SWCellButtonItem *item, SWRevealTableViewCell* cell))handler;
以及.m文件中的定义
+ (instancetype)itemWithTitle:(NSString *)title handler:(BOOL(^)(SWCellButtonItem *, SWRevealTableViewCell *))handler
{
return [[SWCellButtonItem alloc] initWithTitle:title image:nil handler:handler];
}
func rightButtonItemsInRevealTableViewCell(revealTableViewCell : UITableViewCell) -> NSArray {
var item1 : SWCellButtonItem = SWCellButtonItem("Delete", handler: ((item : SWCellButtonItem, cell : SWRevealTableViewCell) -> (Void) in {
NSLog("delete")
}))
item1.backgroundColor = UIColor.redColor()
item1.tintColor = UIColor.whiteColor()
item1.width = 75
return [item1];
}
希望我没有忘记任何东西,试试吧!
正确的解决方案是
let item : SWCellButtonItem = SWCellButtonItem(title:"Delete", handler:{(item:SWCellButtonItem!, cell:SWRevealTableViewCell!)->(Bool) in
println("Delete handler")
return false
} )