Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode编译器错误:";找不到类型';队列';“范围内”;而在swift中删除GPX文件_Ios_Swift_Xcode_Gpx - Fatal编程技术网

Ios Xcode编译器错误:";找不到类型';队列';“范围内”;而在swift中删除GPX文件

Ios Xcode编译器错误:";找不到类型';队列';“范围内”;而在swift中删除GPX文件,ios,swift,xcode,gpx,Ios,Swift,Xcode,Gpx,我会遵循这一点,但当我在我这边实现时,它发生了错误。基本上,我想在我的项目中解析GPX文件。请指导我解决这个问题 protocol GpxParsing: NSObjectProtocol { func parser(_ parser: GpxParser, didCompleteParsing locations: Queue<CLLocation>) } class GpxParser: NSObject, XMLParserDelegate { private

我会遵循这一点,但当我在我这边实现时,它发生了错误。基本上,我想在我的项目中解析GPX文件。请指导我解决这个问题

protocol GpxParsing: NSObjectProtocol {
    func parser(_ parser: GpxParser, didCompleteParsing locations: Queue<CLLocation>)
}
class GpxParser: NSObject, XMLParserDelegate {
    private var locations: Queue<CLLocation>
    weak var delegate: GpxParsing?
    private var parser: XMLParser?
    init(forResource file: String, ofType typeName: String) {
        self.locations = Queue<CLLocation>()
        super.init()
        if let content = try? String(contentsOfFile: Bundle.main.path(forResource: file, ofType: typeName)!) {
            let data = content.data(using: .utf8)
            parser = XMLParser.init(data: data!)
            parser?.delegate = self 
        }
    }
    func parse() {
        self.parser?.parse()
    }
    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
        switch elementName {
        case "trkpt":
            if let latString =  attributeDict["lat"],
                let lat = Double.init(latString),
                let lonString = attributeDict["lon"],
                let lon = Double.init(lonString) {
                locations.enqueue(CLLocation(latitude: lat, longitude: lon))
            }
        default: break
        }
    }
    func parserDidEndDocument(_ parser: XMLParser) {
        delegate?.parser(self, didCompleteParsing: locations)
    }
}
协议GpxParsing:NSObjectProtocol{ func解析器(解析器:GpxParser,didCompleteParsing位置:Queue) } 类GpxParser:NSObject,XMLParserDelegate{ 专用变量位置:队列 弱变量委托:GpxParsing? 私有var解析器:XMLParser? init(forResource文件:String,of type typeName:String){ self.locations=队列() super.init() 如果let content=try?字符串(contentsOfFile:Bundle.main.path(forResource:file,of type:typeName)!){ 让data=content.data(使用:.utf8) parser=XMLParser.init(数据:data!) 解析器?.delegate=self } } func parse(){ self.parser?.parse() } func解析器(parser:XMLParser,DidStartElementName:String,namespaceURI:String?,qualifiedName qName:String?,attributes attributeDict:[String:String]=[:])){ 开关元件名称{ 案例“trkpt”: 如果let latString=attributeDict[“lat”], 设lat=Double.init(latString), 设lonString=attributeDict[“lon”], 设lon=Double.init(lonString){ 位置。排队(CLLocation(纬度:纬度,经度:经度)) } 默认值:中断 } } func parserDidEndDocument(parser:XMLParser){ 委托?.parser(self,didCompleteParsing:位置) } }
这篇文章非常清楚地告诉您:

实现队列应该很简单(或者是一个很好的练习)


换句话说,作者没有包括队列的实现;相反,作者邀请你来写。正如作者所暗示的,这是一个让您了解什么是队列并编写其通用Swift实现的机会。没有队列类型,因为您没有按照本文作者的要求编写队列类型。如果你不愿意自己思考和编写代码,那么这篇文章对你来说不是一篇好文章。你可以通过谷歌搜索“Swift queue implementation”了解更多信息,