无法将类型“()”的值分配给类型 'UIView?'
Cannot assign value of type '()' to type 'UIView?'
我创建了一个视图以供重复使用。我的计划是:在 ViewController 上显示相同的内容,但内容因类型而异。
在视图中,您需要更改 Label 并且 background.The 数据来自服务器,为此我创建了 ViewModel。根据类型,我return标签内容和背景颜色。
ViewModel.swift
class SomeViewModel{
enum ViewType: Int {
case oneViewType
case twoViewType
}
//Example
func getViewBackgroundColor() -> UIColor {
switch ViewType {
case .oneViewType:
return .black
case .twoViewType :
return .white
}
}
}
ViewControllerViewModel.swift
class ViewControllerViewModel{
var viewType: ViewType? = nil
func getViewType(type: viewType) {
switch type {
case .oneViewType:
return
case .twoViewType:
return
}
}
ViewController.swift
class SomeViewController: UIViewController {
@IBOutlet weak var oneView:UIView!
@IBOutlet weak var twoView:UIView!
var viewModel: SomeViewModel!
override func viewDidLoad() {
super.viewDidLoad()
}
func configure(viewModel: ViewControllerViewModel) {
self.viewModel = viewModel
//ERROR : Cannot assign value of type '()' to type 'UIView?'
oneView = self.SomeViewModel.getViewType(type: .oneViewType)
}
}
错误:无法将类型“()”的值分配给类型 'UIView?'
在更正您的代码后,我不知道您在做什么。它应该是这样的:
enum ViewType: Int {
case oneViewType
case twoViewType
func getViewBackgroundColor() -> UIColor {
switch self {
case ViewType.oneViewType:
return .black
case ViewType.twoViewType :
return .white
}
}
}
class SomeViewModel{
var type : ViewType
init(type : ViewType) {
self.type = type
}
}
class ViewControllerViewModel{
var viewType: ViewType? = nil
func getViewType(type: ViewType) {
switch type {
case .oneViewType:
return
case .twoViewType:
return
}
}
}
class WalletsViewModel : SomeViewModel {
}
但我仍然不知道你想分配什么 viewOne : UIView = getType(ViewType)
哪个 return 一个 Int
我创建了一个视图以供重复使用。我的计划是:在 ViewController 上显示相同的内容,但内容因类型而异。 在视图中,您需要更改 Label 并且 background.The 数据来自服务器,为此我创建了 ViewModel。根据类型,我return标签内容和背景颜色。
ViewModel.swift
class SomeViewModel{
enum ViewType: Int {
case oneViewType
case twoViewType
}
//Example
func getViewBackgroundColor() -> UIColor {
switch ViewType {
case .oneViewType:
return .black
case .twoViewType :
return .white
}
}
}
ViewControllerViewModel.swift
class ViewControllerViewModel{
var viewType: ViewType? = nil
func getViewType(type: viewType) {
switch type {
case .oneViewType:
return
case .twoViewType:
return
}
}
ViewController.swift
class SomeViewController: UIViewController {
@IBOutlet weak var oneView:UIView!
@IBOutlet weak var twoView:UIView!
var viewModel: SomeViewModel!
override func viewDidLoad() {
super.viewDidLoad()
}
func configure(viewModel: ViewControllerViewModel) {
self.viewModel = viewModel
//ERROR : Cannot assign value of type '()' to type 'UIView?'
oneView = self.SomeViewModel.getViewType(type: .oneViewType)
}
}
错误:无法将类型“()”的值分配给类型 'UIView?'
在更正您的代码后,我不知道您在做什么。它应该是这样的:
enum ViewType: Int {
case oneViewType
case twoViewType
func getViewBackgroundColor() -> UIColor {
switch self {
case ViewType.oneViewType:
return .black
case ViewType.twoViewType :
return .white
}
}
}
class SomeViewModel{
var type : ViewType
init(type : ViewType) {
self.type = type
}
}
class ViewControllerViewModel{
var viewType: ViewType? = nil
func getViewType(type: ViewType) {
switch type {
case .oneViewType:
return
case .twoViewType:
return
}
}
}
class WalletsViewModel : SomeViewModel {
}
但我仍然不知道你想分配什么 viewOne : UIView = getType(ViewType)
哪个 return 一个 Int