gpt4 book ai didi

swift - 我正在使用谷歌地图自动完成包装器,但我没有遵守委托(delegate)。这是怎么回事?

转载 作者:搜寻专家 更新时间:2023-10-31 23:01:30 25 4
gpt4 key购买 nike

我正在使用 https://github.com/mrugrajsinh/MVAutocompletePlaceSearchTextField

在输入地址时为我的应用创建自定义自动完成 UI。但是,尽管一切都在那里,但我似乎无法遵守协议(protocol)。桥接头和组已正确处理,因为我可以在我的 VC 中毫无问题地访问这些方法,但我无法编译,因为它不符合要求。

Objective C 协议(protocol)是:

@protocol PlaceSearchTextFieldDelegate;

@interface MVPlaceSearchTextField : MLPAutoCompleteTextField
@property(nonatomic,strong)NSString *strApiKey;
@property(nonatomic,strong)IBOutlet id<PlaceSearchTextFieldDelegate>placeSearchDelegate;
@end

@protocol PlaceSearchTextFieldDelegate <NSObject>

-(void)placeSearch:(MVPlaceSearchTextField*)textField ResponseForSelectedPlace:(GMSPlace*)responseDict;
-(void)placeSearchWillShowResult:(MVPlaceSearchTextField*)textField;
-(void)placeSearchWillHideResult:(MVPlaceSearchTextField*)textField;
-(void)placeSearch:(MVPlaceSearchTextField*)textField ResultCell:(UITableViewCell*)cell withPlaceObject:(PlaceObject*)placeObject atIndex:(NSInteger)index;
@end

我的快速代码是:

extension AddAddressViewController: PlaceSearchTextFieldDelegate {

//MARK: Placesearch Textfield Delegates

func placeSearch(textField: MVPlaceSearchTextField!, responseForSelectedPlace responseDict: GMSPlace!) {
return
}

func placeSearch(textField: MVPlaceSearchTextField!, resultCell cell: UITableViewCell!, withPlaceObject placeObject: PlaceObject!, atIndex index: Int) {
}

func placeSearchWillHideResult(textField: MVPlaceSearchTextField!) {
}

func placeSearchWillShowResult(textField: MVPlaceSearchTextField!) {
}

}

一切尽在其中。但是我得到的类型 AddAddressViewController 不符合协议(protocol) PlaceSearch...

我还缺少什么?我已经正确地对我正在使用的文本字段进行了子类化,并创建了一个 socket 。也妥妥的委托(delegate)了吧,所以应该都打吧!

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import <GoogleMaps/GoogleMaps.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import "MVPlaceSearchTextField.h"


#endif /* Bridging_Header_h */
编辑:

这里我使用了一个objective C to swift translator来直接转换协议(protocol)方法。但是,现在我收到一个编译错误,指出协议(protocol)的参数与建议的修复不同,即恢复为小写...

func placeSearch(textField: MVPlaceSearchTextField, ResponseForSelectedPlace responseDict: GMSPlace) {
self.view.endEditing(true)
NSLog("SELECTED ADDRESS :%@", responseDict)
}

func placeSearchWillShowResult(textField: MVPlaceSearchTextField) {
}

func placeSearchWillHideResult(textField: MVPlaceSearchTextField) {
}

func placeSearch(textField: MVPlaceSearchTextField, ResultCell cell: UITableViewCell, withPlaceObject placeObject: PlaceObject, atIndex index: Int) {
if index % 2 == 0 {
cell.contentView.backgroundColor = UIColor(white: 0.9, alpha: 1.0)
}
else {
cell.contentView.backgroundColor = UIColor.whiteColor()
}
}

最佳答案

为 Swift 尝试这段代码:

@objc(placeSearch:ResponseForSelectedPlace:) func placeSearch(textField: MVPlaceSearchTextField!, responseForSelectedPlace responseDict: GMSPlace!) {
}

@objc(placeSearch:ResultCell:withPlaceObject:atIndex:) func placeSearch(textField: MVPlaceSearchTextField!, resultCell cell: UITableViewCell!, withPlaceObject placeObject: PlaceObject!, atIndex index: Int) {
}

@objc(placeSearchWillShowResult:) func placeSearchWillShowResult(textField: MVPlaceSearchTextField!) {
}

@objc(placeSearchWillHideResult:) func placeSearchWillHideResult(textField: MVPlaceSearchTextField!) {
}

关于swift - 我正在使用谷歌地图自动完成包装器,但我没有遵守委托(delegate)。这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com