私はObjective-Cクラスから関数を呼び出しています。 SwiftクラスからObjective-C関数に配列を渡します。ここでSwiftからNSArrayをObjective-C関数に渡す
はスウィフト
var videosAutoCompletion:[String] = []
completeSearch.autocompleteSegesstions(searchText, self.tableView, self.videosAutoCompletion)
Objective-Cの機能
-(void)autocompleteSegesstions : (NSString *)searchWish :(UITableView*)table :(NSArray*)stringArray
のための私のコードはObjective-Cの関数内私はこれを取得していますブロック
dispatch_sync(dispatch_get_main_queue(), ^{
self.ParsingArray = [[NSMutableArray alloc]init]; //array that contains the objects.
for (int i=0; i != [jsonObject count]; i++) {
for (int j=0; j != 1; j++) {
//NSLog(@"%@", [[jsonObject objectAtIndex:i] objectAtIndex:j]);
[self.ParsingArray addObject:[[jsonObject objectAtIndex:i] objectAtIndex:j]];
//Parse the JSON here...
//NSLog(@"Parsing Array - %@",self.ParsingArray);
stringArray = [self.ParsingArray copy];
[table reloadData];
}
}
});
を持っていたあります次の行のエラー。
変数はラインで
stringArray = [self.ParsingArray copy];
このエラーに対処する少なくとも2つのStackOverflow質問があります。 Swiftとは関係ありません。それは "ブロック"(Swiftの "クロージャ"のObjective-Cの名前)を使用することと関係しています。 [ブロック内の変数をブロック外の変数に代入する](https://stackoverflow.com/q/7962721/1107226)、メソッドから変数を使用するときに[変数が割り当てられない(__block型指定子がありません)]エラーメソッドブロック内の宣言](https://stackoverflow.com/q/36573957/1107226) – leanne