我更新了一个iOS应用程序(不是由我自己开发的),因为您想知道是否要上载新版本或新应用程序的所有人都应该使用新的SDK 13。
我对Swift和iOS没有太多经验,但是知道我需要更新以前在swift 3上运行的该应用程序,但是没有问题,但是当我在Xcode 10.1上将其转换为swift 4时,对我来说还有很多新错误,我已经在这里找到了与此类错误有关的类似主题,但是由于没有该应用程序的任何文档,而且我还是新手,因此我不确定如何解决它们。因此,至少我希望有人可以通过更新快速版本来帮助我理解为什么会有这些新错误。
我遇到的最经常出现的错误类似于此示例,以下功能正在运行,但是在更新后,我出现以下错误:
function zoomToFeature(e) {
var layer = e.target;
var prop = layer.feature.properties.ADMIN;
var first = document.getElementById('first');
var second = document.getElementById('second');
// can always set, because style will be reseted by "second" click
layer.setStyle({
weight: 5,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});
if(first.value == prop){
geojson.resetStyle(layer);
first.value = "";
}else if(second.value == prop){
geojson.resetStyle(layer);
second.value = "";
}else if(first.value == ""){
first.value = prop;
}else if(second.value == ""){
second.value = prop;
}
if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {
e.target.bringToFront();
}
}
func showDeleteView()
{
let view: EliminarDialogView = try! SwiftMessages.viewFromNib()
view.configureDropShadow()
view.eliminarAction = { _ in self.handleDeleteToken() ; SwiftMessages.hide() }
view.cancelAction = { SwiftMessages.hide() }
var config = SwiftMessages.defaultConfig
config.interactiveHide = true
config.presentationContext = .window(windowLevel: UIWindowLevelStatusBar)
config.duration = .forever
config.presentationStyle = .bottom
config.dimMode = .gray(interactive: true)
SwiftMessages.show(config: config, view: view)
和
Unable to infer complex closure return type; add explicit type to disambiguate
如果我选择通过IDE修复它,则会出现另一个错误:
Cannot infer contextual base in reference to member 'window'
我在这里发现并在Internet上冲浪的原因是,需要在列表中接收相同类型的变量,但是由于还使用了“ _”,因此我不确定如何在此处处理该变量。
已编辑
吊舱的更新有所帮助!但是关于哪一行代码有错误:
Value of type 'SwiftMessages.Config' has no member 'presentationContext'
Unable to infer complex closure return type; add explicit type to disambiguate
Cannot convert value of type '(_) -> ()' to expected argument type '(() -> Void)?'
在以下几行:
Value of type 'ActivarViewController' has no member 'startAnimating'
view.eliminarAction = { _ in self.handleDeleteToken() ; SwiftMessages.hide() }
self.present(alert, animated: true, completion: { _ in }) }
答案 0 :(得分:1)
请您尝试如下更新SwiftMessages
:
pod 'SwiftMessages', '~> 5.0'
答案 1 :(得分:0)
AddComp
-如果没有参数,则根本不要使用Void。
@model CompetenceRadar.Models.Person
<h1>AddComp</h1>
<div class="row">
<form asp-action="AddComp">
<input type="hidden" asp-for="ID" />
<div class="form-group col-sm-4">
<label asp-for="#############" class="control-label col-sm-4"></label>
<input asp-for="#############" class="form-control col-sm-4" />
<span class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-dark" />
</div>
</form>
</div>
@foreach (var item in Model.PersonCompetences)
{
<div class="row py-2 rounded" style="background-color:lightslategray">
<div class="col-sm-3 pt-2">@item.Competence.CompetenceType</div>
<div class="col-sm-1 pt-2">@item.Niva</div>
<div class="col-sm-3 pt-2">@item.Competence.CompetenceCategory</div>
<div class="col-sm-5 d-flex justify-content-end">
<a class="btn btn-dark mr-1" role="button" asp-area="" asp-controller="Competence" asp-action="UpdateLevel" asp-route-id="@item.ID">Update</a>
<a class="btn btn-dark mr-1" role="button" asp-area="" asp-controller="Competence" asp-action="DeleteComp" asp-route-id="@item.CompetenceID">Remove</a>
</div>
</div>
}
-Cannot convert value of type '(_) -> ()' to expected argument type '(() -> Void)?'
启动进度指示器的动画,因此可以通过Value of type 'ActivarViewController' has no member 'startAnimating'
对其进行调用。