Trong Objective-C, bạn có thể xác định đầu vào và đầu ra của một khối, lưu trữ một trong những khối đó là thông qua vào một phương pháp, sau đó sử dụng khối sau:cửa hàng đóng cửa như là một biến trong Swift
// in .h
typedef void (^APLCalibrationProgressHandler)(float percentComplete);
typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error);
// in .m
@property (strong) APLCalibrationProgressHandler progressHandler;
@property (strong) APLCalibrationCompletionHandler completionHandler;
- (id)initWithRegion:(CLBeaconRegion *)region completionHandler:(APLCalibrationCompletionHandler)handler
{
self = [super init];
if(self)
{
...
_completionHandler = [handler copy];
..
}
return self;
}
- (void)performCalibrationWithProgressHandler:(APLCalibrationProgressHandler)handler
{
...
self.progressHandler = [handler copy];
...
dispatch_async(dispatch_get_main_queue(), ^{
_completionHandler(0, error);
});
...
}
Vì vậy, tôi đang cố gắng làm việc bình đẳng trong Swift:
var completionHandler:(Float)->Void={}
init() {
locationManager = CLLocationManager()
region = CLBeaconRegion()
timer = NSTimer()
}
convenience init(region: CLBeaconRegion, handler:((Float)->Void)) {
self.init()
locationManager.delegate = self
self.region = region
completionHandler = handler
rangedBeacons = NSMutableArray()
}
Trình biên dịch không thích tuyên bố hoàn thànhHandler đó. Không phải là tôi đổ lỗi cho nó, nhưng, làm thế nào để tôi xác định một đóng cửa có thể được thiết lập và sử dụng sau này trong Swift?
lỗi bạn đang nhận được gì, khi bạn biên dịch? – TheLazyChap