我知道同一主题有多个问题,但我的问题和那些问题之间的差异似乎是定义参数。甚至更奇怪的是代码会在我的iPhone上构建和安装,直到昨天。
这是Xcode抱怨的地方
import Foundation
import Alamofire
import SwiftyJSON
enum LocItemFields: String {
case Name = "name"
case LocationBackground = "locationBackground"
case Logo = "logo"
case Status = "status"
case Company = "company"
case Id = "id"
case Url = "url"
}
class LocItemsWrapper {
var locItems: Array<LocItems>?
var count: Int?
private var next: String?
private var previous: String?
}
class LocItems {
var idNumber: Int?
var name: String?
var locationBackground: String?
var logo: String?
var status: String?
var company: String?
var id: String?
var url: String?
required init(json: JSON, id: Int?) {
//print(json)
self.idNumber = id
self.name = json[LocItemFields.Name.rawValue].stringValue
self.locationBackground = json[LocItemFields.LocationBackground.rawValue].stringValue
self.logo = json[LocItemFields.Logo.rawValue].stringValue
self.status = json[LocItemFields.Status.rawValue].stringValue
self.company = json[LocItemFields.Company.rawValue].stringValue
self.id = json[LocItemFields.Id.rawValue].stringValue
}
// MARK: Endpoints
class func endpointForLocItems(long: Double!, lat: Double!) -> String {
return Constants.getLocLoadListUrl() + "/" + String(long) + "/" + String(lat) + "/0"
}
private class func getLocItemsAtPath(path: String!, completionHandler: (LocItemsWrapper?, NSError?) -> Void) {
Alamofire.request(.GET, path!)
.responseLocItemsArray { response in
if let error = response.result.error
{
completionHandler(nil, error)
return
}
completionHandler(response.result.value, nil)
}
}
class func getLocItems(long: Double, lat: Double, completionHandler: (LocItemsWrapper?, NSError?) -> Void) {
getLocItemsAtPath(LocItems.endpointForLocItems(long,lat: lat), completionHandler: completionHandler)
}
class func getMoreLocItems(wrapper: LocItemsWrapper?, completionHandler: (LocItemsWrapper?, NSError?) -> Void) {
if wrapper == nil || wrapper?.next == nil
{
completionHandler(nil, nil)
return
}
getLocItemsAtPath(wrapper!.next!, completionHandler: completionHandler)
}
}
extension Alamofire.Request {
func responseLocItemsArray(completionHandler: Response<LocItemsWrapper, NSError> -> Void) -> Self {
let responseSerializer = ResponseSerializer<LocItemsWrapper, NSError> { request, response, data, error in
guard error == nil else {
return .Failure(error!)
}
guard let responseData = data else {
let failureReason = "Array could not be serialized because input data was nil."
let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
return .Failure(error)
}
let JSONResponseSerializer = Request.JSONResponseSerializer(options: .AllowFragments)
let result = JSONResponseSerializer.serializeResponse(request, response, responseData, error)
switch result {
case .Success(let value):
let json = SwiftyJSON.JSON(value)
let wrapper = LocItemsWrapper()
wrapper.next = json["next"].stringValue
wrapper.previous = json["previous"].stringValue
wrapper.count = json["count"].intValue
var allLocItems:Array = Array<LocItems>()
//print(json)
let results = json["rows"]
//print(results)
for jsonLocItems in results
{
//print(jsonLocItems.1)
let locItems = LocItems(json: jsonLocItems.1, id: Int(jsonLocItems.0))
allLocItems.append(locItems)
}
wrapper.locItems = allLocItems
return .Success(wrapper)
case .Failure(let error):
return .Failure(error)
}
}
return response(responseSerializer: responseSerializer,
completionHandler: completionHandler)
}
}
这是整个班级
string input = "this is just a simple text string";
char[] chars = { 't', 's' };
var array = input.Split();
List<string> result = new List<string>();
foreach(var word in array)
{
bool isValid = true;
foreach (var c in chars)
{
if (!word.Contains(c))
{
isValid = false;
break;
}
}
if(isValid) result.Add(word);
}
非常感谢任何帮助,谢谢。
编辑:我通过更改LocItemsWrapper摆脱了错误?到LocItemsWrapper!但现在我有一个错误,说不明确地使用.responseLocItemsArray ......
答案 0 :(得分:0)
Xcode试图告诉你,它无法弄清楚要使用哪个.responseLocItemsArray,请检查所有其他类,看看你是否在其他地方使用过它。