私はswiftクラスから目的関数cのメソッドを呼び出しています。私の目的は、NSNumberの形式で数値を取得することです。私は迅速に数字のタイプを定義しなかったが、まだ私は以下のメッセージを得る。これを解決する方法はありますか?Float型の値を予想される引数型NSNumberに変換できません
- (void)getPercentageMatch:(NSString *)answer listOfAnswers:(NSArray *)validAnswers completionBlock:(void(^)(BOOL isSuccess, NSNumber *percent))completionBlock {
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setValue:answer forKey:@"myanswer"];
[params setValue:validAnswers forKey:@"answers"];
NSMutableURLRequest *req = [AuthorizationHandler createAuthReq:@"POST" path:@"validateAnswer" params:params];
AFJSONRequestOperation *op = [[AFJSONRequestOperation alloc] initWithRequest:req];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *responseheaders = (NSDictionary *)responseObject;
if (completionBlock) {
completionBlock(true, [responseheaders valueForKey:@"percentage"]);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (completionBlock) {
completionBlock(false, 0);
}
}];
[op start];
return;
}
私も強制終了ブロック型キャスト
as! completionBlock(Bool, NSNumber)
が、このdoesntの仕事。
私は迅速に新しいですし、任意のチュートリアル/ポインタが理解されるであろう:)
EDIT 1:私は完了ブロック
let completionBlock = { (isSuccess, percent) in
print("-------", isSuccess, percent)
}
MTRestkitManager.instance().getPercentageMatch(_:text, listOfAnswers:validAnswers, completionBlock:completionBlock)
を変更すると
私はすべてのエラーを得ることはありませんが。しかし、少し修正を加えるとエラーになります。
なぜ行動が変化していますか?
EDIT 2:型の値を変換できません ' - >(ボイド)(BOOL、のNSNumber)': kelinのソリューション以下は、次のように私はエラーが発生します最後の行に
@IBAction func submitButtonTapped(_ sender: Any) {
answerTextView.resignFirstResponder()
if answerTextView.textColor == UIColor.lightGray {
ZUtility.showError(NSLocalizedString("Please enter answer before submitting", comment: ""))
return;
}
if answerTextView.text.isEmpty {
ZUtility.showError(NSLocalizedString("Please enter answer before submitting", comment: ""))
setPlaceholderText()
return;
}
let text = answerTextView.text as String
let completionBlock = { (isSuccess, percent:NSNumber) -> (Void) in
self.handleAnswer(isSuccess: isSuccess, percent: Float(percent))
}
MTRestkitManager.instance().getPercentageMatch(_:text, listOfAnswers:validAnswers, completionBlock:completionBlock)
}
を変更作ら'?!((BOOL、のNSNumber) - >(ボイド)' 予想引数の型に明らかに
あなたのスワイプコードは画像ではありません。 – Bilal
どうやって違いがありますか? –
これを参照してください... https://meta.stackoverflow.com/a/285557/1825618 – Bilal