简体   繁体   English

将(手动)iOS Swift 项目从 1.1 迁移到 1.2 - 编译器需要超过 10 分钟

[英]Migrated (Manually) iOS Swift project from 1.1 to 1.2 - compiler takes more than 10 mins

I was working on iOS Swift project which was on Swift 1.1 compiler.我正在研究使用 Swift 1.1 编译器的 iOS Swift 项目。 I decided to convert the full project to Swift 1.2.我决定将整个项目转换为 Swift 1.2。

I was working with HanekeSwift and as well as Alamofire as third party libraries.我使用 HanekeSwift 和 Alamofire 作为第三方库。 Since I needed to support this app, iOS 7 and above I had to use iOS 7 compatible version of HanekeSwift( https://github.com/eyeballz/HanekeSwift ).由于我需要支持这个应用程序,iOS 7 及更高版本我不得不使用兼容 iOS 7 的 HanekeSwift 版本( https://github.com/eyeballz/HanekeSwift )。 For crash reporting I have used crashlytics.对于崩溃报告,我使用了 crashlytics。

After about one hour of effort I could manually migrated the full project to Swift 1.2.经过大约一小时的努力,我可以手动将整个项目迁移到 Swift 1.2。 After freeing all the errors, when I start building the project, it compiles all the file successfully but it doesn't stop the compiling.释放所有错误后,当我开始构建项目时,它成功编译了所有文件,但并没有停止编译。

After about 10 mins time it gives the following error: " Command failed due to signal: Killed: 9 ".大约 10 分钟后,它给出以下错误:“由于信号导致命令失败:Killed:9 ”。 I checked all the transcript by expanding it and it doesn't show any issue.我通过扩展它检查了所有的成绩单,它没有显示任何问题。

When I check the " Report Navigator " it show green circle icon with white arrow inside for all the files, but only one file shows the gray circle icon and it shows as the compiling is in progress.当我检查“报告导航器”时,它显示所有文件内部带有白色箭头的绿色圆圈图标,但只有一个文件显示灰色圆圈图标,并且显示正在编译。

I couldn't find any compile time errors in that file and I'm not sure what is really happening there.我在那个文件中找不到任何编译时错误,我不确定那里到底发生了什么。

Anyone has any idea?任何人有任何想法?

Edited: I tried adding all the file to a project created using xCode 6.4, but the issue is same.编辑:我尝试将所有文​​件添加到使用 xCode 6.4 创建的项目中,但问题是相同的。

Edited: I have a class like below:编辑:我有一个像下面这样的课程:

import Foundation

class VehicleDetailsUpdateRequest
{
    var vin : NSString
    var vehicleId : NSNumber
    var make : NSString
    var model : NSString
    var body : NSString
    var engine: NSString
    var trim:NSString
    var fuelType : NSString
    var cityMpg : NSString
    var highwayMpg : NSString
    var transmission: NSString
    var year: NSNumber
    var cylinders: NSString
    var driveType: NSString
    var msrp: NSNumber
    var marketClass : NSString
    var vehicleType : NSNumber
    var sellingPrice: NSNumber
    var internetPrice: NSNumber
    var stockNumber: NSString
    var dateInStock: NSDate
    var millage : NSString
    var styleName : NSString
    var styleId : NSString
    var doors : NSNumber
    var driverType : NSNumber?
    var bodyType : NSString
    var locationId : NSNumber

    init(
        vin : NSString,
        vehicleId : NSNumber,
        make : NSString,
        model : NSString,
        body : NSString,
        engine: NSString,
        trim:NSString,
        fuelType : NSString,
        cityMpg : NSString,
        highwayMpg : NSString,
        transmission: NSString,
        year: NSNumber,
        cylinders: NSString,
        driveType: NSString,
        msrp: NSNumber,
        marketClass : NSString,
        vehicleType : NSNumber,
        sellingPrice: NSNumber,
        internetPrice: NSNumber,
        stockNumber: NSString,
        dateInStock: NSDate,
        millage : NSString,
        styleName : NSString,
        styleId : NSString,
        doors : NSNumber,
        bodyType : NSString,
        locationId : NSNumber
        )
    {
        self.vin = vin
        self.vehicleId = vehicleId
        self.make = make
        self.model = model
        self.body = body
        self.engine = engine
        self.trim = trim
        self.fuelType = fuelType
        self.cityMpg  = cityMpg
        self.highwayMpg = highwayMpg
        self.transmission = transmission
        self.year = year
        self.cylinders = cylinders
        self.driveType = driveType
        self.msrp = msrp
        self.marketClass = marketClass
        self.vehicleType = vehicleType
        self.sellingPrice = sellingPrice
        self.internetPrice = internetPrice
        self.stockNumber = stockNumber
        self.dateInStock = dateInStock
        self.millage = millage
        self.styleName = styleName
        self.styleId = styleId
        self.doors = doors
        self.bodyType = bodyType
        self.locationId = locationId
    }
}

And I use this class as follows:我使用这个类如下:

func createVehicleAddEditParams(vehicleUpdateRequest : VehicleDetailsUpdateRequest) -> [String: AnyObject]
    {
        let params : [String: AnyObject] =
        [
            "VIN":vehicleUpdateRequest.vin,
            "VehicleId":vehicleUpdateRequest.vehicleId,
            "Make":vehicleUpdateRequest.make,
            "Model":vehicleUpdateRequest.model,
            "Body":vehicleUpdateRequest.body,
            "Engine":vehicleUpdateRequest.engine,
            "Trim":vehicleUpdateRequest.trim,
            "FuelType":vehicleUpdateRequest.fuelType,
            "CityMpg":vehicleUpdateRequest.cityMpg,
            "HwyMpg":vehicleUpdateRequest.highwayMpg,
            "Transmission":vehicleUpdateRequest.transmission,
            "Year":vehicleUpdateRequest.year,
            "Cylinders":vehicleUpdateRequest.cylinders,
            "DriveType":vehicleUpdateRequest.driveType,
            "MSRP":vehicleUpdateRequest.msrp,
            "MarketClass":vehicleUpdateRequest.marketClass,
            "Styles":"",
            "VehicleType":vehicleUpdateRequest.vehicleType,
            "SellingPrice":vehicleUpdateRequest.sellingPrice,
            "InternetPrice":vehicleUpdateRequest.internetPrice,
            "StockNumber":vehicleUpdateRequest.stockNumber,
            "DateInStock":vehicleUpdateRequest.dateInStock,
            "Millage":vehicleUpdateRequest.millage,
            "Certified":0,
            "StyleName":vehicleUpdateRequest.styleName,
            "StyleId":vehicleUpdateRequest.styleId,
            "Doors":vehicleUpdateRequest.doors,
            "DriverType":"",
            "BodyType":vehicleUpdateRequest.bodyType,
            "VehicleImages":[],
            "LocationId":vehicleUpdateRequest.locationId,
            "Options":""
        ]

        return params
    }

If I comment(params creation part) this above code this issue goes away.如果我评论(参数创建部分)上面的代码,这个问题就会消失。 Anyone see anything odd here?有人看到这里有什么奇怪的吗?

I'm not sure of the reason, but my suggestion would be to copy all of your code, and make a new project.我不确定原因,但我的建议是复制您的所有代码,并创建一个新项目。 I'm guessing something got converted incorrectly, but initializing a new project should give you a new starting point.我猜有些东西被错误地转换了,但是初始化一个新项目应该会给你一个新的起点。

If you don't want to do that, another suggestion would be to Clean your Project and your Test Cases.如果您不想这样做,另一个建议是清理您的项目和测试用例。

After so many R&D steps I found the solutions for the above issue.经过这么多的研发步骤,我找到了上述问题的解决方案。 I converted all the NSString variables to String type variables.我将所有 NSString 变量转换为 String 类型变量。

Now my class looks like below:现在我的班级如下所示:

import Foundation

class VehicleDetailsUpdateRequest
{
    var vin : String
    var vehicleId : NSNumber
    var make : String
    var model : String
    var body : String
    var engine: String
    var trim:String
    var fuelType : String
    var cityMpg : String
    var highwayMpg : String
    var transmission: String
    var year: NSNumber
    var cylinders: String
    var driveType: String
    var msrp: NSNumber
    var marketClass : String
    var vehicleType : NSNumber
    var sellingPrice: NSNumber
    var internetPrice: NSNumber
    var stockNumber: String
    var dateInStock: NSDate
    var millage : String
    var styleName : String
    var styleId : String
    var doors : NSNumber
    var driverType : NSNumber?
    var bodyType : String
    var locationId : NSNumber

    init(
        vin : String,
        vehicleId : NSNumber,
        make : String,
        model : String,
        body : String,
        engine: String,
        trim: String,
        fuelType : String,
        cityMpg : String,
        highwayMpg : String,
        transmission: String,
        year: NSNumber,
        cylinders: String,
        driveType: String,
        msrp: NSNumber,
        marketClass : String,
        vehicleType : NSNumber,
        sellingPrice: NSNumber,
        internetPrice: NSNumber,
        stockNumber: String,
        dateInStock: NSDate,
        millage : String,
        styleName : String,
        styleId : String,
        doors : NSNumber,
        bodyType : String,
        locationId : NSNumber
        )
    {
        self.vin = vin
        self.vehicleId = vehicleId
        self.make = make
        self.model = model
        self.body = body
        self.engine = engine
        self.trim = trim
        self.fuelType = fuelType
        self.cityMpg  = cityMpg
        self.highwayMpg = highwayMpg
        self.transmission = transmission
        self.year = year
        self.cylinders = cylinders
        self.driveType = driveType
        self.msrp = msrp
        self.marketClass = marketClass
        self.vehicleType = vehicleType
        self.sellingPrice = sellingPrice
        self.internetPrice = internetPrice
        self.stockNumber = stockNumber
        self.dateInStock = dateInStock
        self.millage = millage
        self.styleName = styleName
        self.styleId = styleId
        self.doors = doors
        self.bodyType = bodyType
        self.locationId = locationId
    }
}

Hope this will help you all in some way.希望这会以某种方式帮助大家。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM