我有一个带有const字符串变量的类的程序集,
public class Data {
public const string Version = "1.0.0";
}
这将在另一个程序集中用于分配给字符串属性,
public class ViewModel
{
AppVersion = Data.Version;
public String AppVersion
{
get;
set;
}
}
此AppVersion将显示在UI应用程序上。
问题是,我已经将此版本更新为1.0.1,并且仅构建了该程序集具有Data类并将dll移至生产环境。
但是,此新版本未显示,并且仍显示旧版本(1.0.0)。
当我构建另一个具有AppVersion(ViewModel)的程序集时,将显示新版本。
出了什么问题?我的程序集如何保留旧版本的值?
答案 0 :(得分:0)
这是override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == journals.count {
let cellAdding: JournalMainSceneAddNew = {
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdExtra) as? JournalMainSceneAddNew else {
return JournalMainSceneAddNew(style: UITableViewCellStyle.value1, reuseIdentifier: cellIdExtra)
}
return cell
}()
return cellAdding
}
let cell: JournalMainSceneCell = {
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdMain) as? JournalMainSceneCell else {
return JournalMainSceneCell(style: UITableViewCellStyle.value1, reuseIdentifier: cellIdMain)
}
return cell
}()
cell.numberOfCountriesLabel.text = "\(journals[indexPath.row].numberOFCountries)"
return cell
}
和const
之间的主要区别。只需像这样更改您的static readonly
类,就可以了:
Data
说明:
在public class Data {
public static readonly string Version = "1.0.0";
}
的编译时,您的编译器会看到AppVersion = Data.Version
是Data.Version
,因此只需将其替换为const string
(出于优化考虑)。
另一方面,当您AppVersion = "1.0.0"
是Data.Version
时,编译器将知道他(或她?Roslyn)需要引用static readonly string
类型来获取此静态字段值,因此当您切换Data
dll时-您的Data
dll将看到实际值。