我是MVVM和RxSwift的初学者,我想在我的下一个项目中实现它.目前,我正在使用我的登录模块,一切看起来都很好,但是每次运行我的应用程序时,它都会在将文本字段绑定到我的ViewModel时发出错误,说"在解开一个Optional值时意外发现了nil".
任何人都可以帮我摆脱它吗?我是这样做的:
class LoginViewController: UIViewController {
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var loginButton: UIButton!
private var loginViewModel: UserLoginViewModel!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
emailTextField.rx.text.orEmpty
.bind(to: loginViewModel.emailAdd)
.disposed(by: disposeBag) <---- Displays "Unexpectedly found nil while unwrapping an Optional value"
passwordTextField.rx.text.orEmpty
.bind(to: loginViewModel.password)
.disposed(by: disposeBag) <---- Displays "Unexpectedly found nil while unwrapping an Optional value"
}
}
/////loginProtocol
protocol loginProtocol {
//MARK - Input
var emailAdd: Variable<String> { get } …Run Code Online (Sandbox Code Playgroud) 我看到一个Swift函数编写如下:
func calculation(imageRef: CGImage) -> (red: [UInt], green: [UInt], blue: [UInt]) {
...
...
}
Run Code Online (Sandbox Code Playgroud)
我需要知道上面函数中的返回类型是什么.我无法将它与任何已知类型联系起来,以及它与Objective-C中的等价物有什么关系?将此函数转换为Objective-C的方法是什么?
我有一个像这样定义的 Swift for 循环:
for i in 20...1 {
array.append(i)
}
Run Code Online (Sandbox Code Playgroud)
但我收到消息崩溃
Thread 1: Fatal error: Can't form Range with upperBound < lowerBound
Run Code Online (Sandbox Code Playgroud)
什么是修复?
我需要从字符串中过滤不可见的字符。在附加的屏幕截图中,字符串“?Cilantro”有一些隐藏字符,当我在删除隐藏字符之前和之后计算它时,它会显示不同的字符数。
我只想过滤不可见字符而不是特殊字符,例如我不想过滤 á、ã è 等字符。
注意:我使用“删除”按钮删除了隐藏字符。
作为参考,我在这里添加了带有隐形字符的字符串:“?Cilantro”。我不确定它是否也会显示在你的最后。
我使用框架(没有Carthage,没有Pods)只能将它复制到项目中.编译后我得到错误:
Module compiled with Swift 3.1 cannot be imported in Swift 4.0:
/Path/To/Framework/Module/x86_64.swiftmodule
Run Code Online (Sandbox Code Playgroud)
再次清洁和建设项目不起作用.有没有办法解决这个问题?
如何获取当前日期unix-epoch?
timeIntervalSince1970打印当前时间.上午12点有什么方法可以获得今天的时间吗?
例如,当前时间是:2018年1月7日下午5:30.timeIntervalSince1970将打印当前时间即1546903800000.时代系统中的当前日期将是2018年1月7日00:00 AM.即1546848000000