我不确定这是否可以重现......
我的快速iOS项目需要很长时间才能构建。实际上,它没有建立,进度条现在只停留在那里大约15分钟:
这真的很奇怪。
这是我在构建它之前所做的:
现在,进度条就在那里。
我可以做些什么来加快速度?
P.S。
昨天不需要很长时间才能建造。我今天只添加了几行代码,所以我不认为问题是因为我的项目太大了。也许是Xcode中的一个错误。
有趣的事实:当我写完问题时,进度条仍然存在。
更新
签出this post后,我发现编译始终停留在此文件中:
class UserSettings {
static var valueOfPi: Double {
let π = NSUserDefaults.standardUserDefaults().doubleForKey("valueOfPi")
return π == 0.0 ? M_PI : π
}
static var usePiLiteral: Bool {
return NSUserDefaults.standardUserDefaults().boolForKey("usePiLiteral")
}
enum SigFigOptions{
case No
case Yes(Int)
func correctTo (i: Double) -> Double {
switch self {
case .No:
return i
case let .Yes(sigFig):
if i == 0 {
return 0
}
let d = ceil(log10(i < 0 ? -i : i))
let power = sigFig - Int(d)
let magnitude = pow(10.0, Double(power))
let shifted = round(i * magnitude)
return shifted / magnitude
}
}
}
enum AngleMeasures : String {
case Degrees = "Degrees"
case Radians = "Radians"
case Gradians = "Gradians"
}
static var sigFigOption: SigFigOptions {
let userPref = NSUserDefaults.standardUserDefaults().integerForKey("sigFigOption")
return userPref == 0 ? .No : .Yes(userPref)
}
static var angleMeasure: AngleMeasures {
let measureId = NSUserDefaults.standardUserDefaults().integerForKey("angleMeasure")
switch measureId {
case 0:
return .Radians
case 1:
return .Degrees
case 2:
return .Gradians
default:
return .Radians
}
}
static func convertToPref (angleRadians: Double) -> Double {
switch angleMeasure {
case .Radians:
return angleRadians
case .Degrees:
return 180 * angleRadians / UserSettings.valueOfPi
case .Gradians:
return 180 * angleRadians / UserSettings.valueOfPi * (10.0 / 9.0)
}
}
static func convertFromPref (prefAngle: Double) -> Double {
switch angleMeasure {
case .Radians:
return prefAngle
case .Degrees:
return prefAngle * UserSettings.valueOfPi / 180.0
case .Gradians:
return prefAngle / (10 / 9) * UserSettings.valueOfPi / 180.0
}
}
static var pref90Degrees: Double {
return convertToPref(valueOfPi / 2)
}
static var pref180Degrees: Double {
return pref90Degrees * 2
}
static var prefHideWarning: Bool {
get { return NSUserDefaults.standardUserDefaults().boolForKey("hideWarning") }
set { NSUserDefaults.standardUserDefaults().setBool(newValue, forKey: "hideWarning") }
}
static var aValue: Double {
get { return NSUserDefaults.standardUserDefaults().doubleForKey("aValue") }
set { NSUserDefaults.standardUserDefaults().setDouble(newValue, forKey: "aValue") }
}
static var bValue: Double {
get { return NSUserDefaults.standardUserDefaults().doubleForKey("bValue") }
set { NSUserDefaults.standardUserDefaults().setDouble(newValue, forKey: "bValue")}
}
static var cValue: Double {
get { return NSUserDefaults.standardUserDefaults().doubleForKey("cValue") }
set { NSUserDefaults.standardUserDefaults().setDouble(newValue, forKey: "cValue")}
}
}
该文件中的哪些代码可能导致此问题?我认为这与NSUserDefaults
有关,对吧?
答案 0 :(得分:1)
我尝试了各种技术,启动了许多命令,但最后我注意到有两个命令行实际上提高了编译速度,可能它们对你的情况很有用(你必须关闭并重新打开Xcode才能激活这些设置):
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks <1|2|4|8|16|..>
(Xcode将用于执行任务的线程数默认为CPU具有相同数量的核心 - &gt;默认值= CPU核心)
defaults write com.apple.Xcode XCMaxNumberOfDistributedTasks <desired-number>
(com.apple.Xcode域中的用户默认XCMaxNumberOfDistributedTasks控制Xcode将立即向DNB系统发送的并发编译作业数量;默认情况下为25)