如何UIAlertController
在外面敲击时解雇UIAlertController
?
我可以添加一种UIAlertAction
风格UIAlertActionStyleCancel
来解雇UIAlertController
.
但我想补充一点,当外界使用者开关功能UIAlertController
的UIAlertController
将开除.怎么做?谢谢.
我在RxSwift中学习了示例代码.在文件GithubSignupViewModel1.swift中,validatedUsername的定义是:
validatedUsername = input.username //the username is a textfiled.rx_text
.flatMapLatest { username -> Observable<ValidationResult> in
print("-------->1:")
return validationService.validateUsername(username)
.observeOn(MainScheduler.instance)
.catchErrorJustReturn(.Failed(message: "Error contacting server"))
}
.shareReplay(1)
Run Code Online (Sandbox Code Playgroud)
validateUsername方法最终被称为以下方法:
func usernameAvailable(username: String) -> Observable<Bool> {
// this is ofc just mock, but good enough
print("-------->2:")
let URL = NSURL(string: "https://github.com/\(username.URLEscaped)")!
let request = NSURLRequest(URL: URL)
return self.URLSession.rx_response(request)
.map { (maybeData, response) in
print("-------->3:")
return response.statusCode == 404
}
.catchErrorJustReturn(false)
}
Run Code Online (Sandbox Code Playgroud)
这是我的困惑:
每当我在用户名文本字段中快速输入一个字符时,消息--------> 1:,--------> 2:显示,以及稍后的消息-------- > 3:显示,但只显示一个--------> 3:消息.
当我输入较慢的字符时,消息--------> 1:,--------> 2:,--------> 3:连续显示.
但是当我将flatMapLatest更改为flatMap时,我输入了多少个字符,我将得到相同数量的--------> 3:message. …
我使用以下代码创建一个observable:
let disposeBag = DisposeBag()
let myJust = { (element: String) -> Observable<String> in
return Observable.create { observer in
observer.on(.next(element))
//observer.on(.completed)
return Disposables.create()
}
}
Run Code Online (Sandbox Code Playgroud)
该代码来自RxSwift的示例代码.
如果我创建一个空的Observable myJust
,稍后我会尝试发送一个值:
myJust("").on(.completed)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
error: value of type 'Observable<String>' has no member 'on'
Run Code Online (Sandbox Code Playgroud) 我们创建一个DisposeBag
,然后Observable
订阅Observable
,然后addDisposableTo(disposeBag)
,我知道什么时候DisposeBag
它会去除,它会调用dispose()
释放资源,否则会导致内存泄漏.
如果Observable
发送Complete
或Error
在有限时间内终止.当Observable
之前终止DisposeBag
DEINIT,我有需要调用addDisposableTo(disposeBag)
?DisposeBag
收到终止消息后,会自动释放订阅它的观察者吗?
let disposeBag = DisposeBag()
Observable.just("")
.subscribe { event in
print(event)
}
.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)
我应该.addDisposableTo(disposeBag)
明确吗?我想在发送""之后,Observable
会终止并释放观察者吗?
我在RxSwift的示例代码中读取了双向绑定运算符.
func <-> <T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable {
let bindToUIDisposable = variable.asObservable()
.bindTo(property)
let bindToVariable = property
.subscribe(onNext: { n in
variable.value = n
}, onCompleted: {
bindToUIDisposable.dispose()
})
return StableCompositeDisposable.create(bindToUIDisposable, bindToVariable)
}
Run Code Online (Sandbox Code Playgroud)
当property
改变,它会通知变量,并设置变量的值,而该变量的值时,它会通知物业.我认为这会导致无休止的循环......
我正在使用Xcode8 beta6,swift3.0,并获得如下编译警告:
Some object files have incompatible Objective-C category definitions. Some category
metadata may be lost. All files containing Objective-C categories should be built using the
same compiler.
Run Code Online (Sandbox Code Playgroud)
仍然存在于Xcode8 GM中!
我在github中看到了一些源代码,如下所示: functional-swift
我们可以看到一个名为Ship的结构的定义,其中有一些变量.从下面的代码我们可以看到它中还有一些功能.它用以下样式编写:
struct xxx {
}
extension xxx {
func yyy() {}
}
Run Code Online (Sandbox Code Playgroud)
我也可以用以下样式确定结构:
struct xxx {
func yyy() {}
}
Run Code Online (Sandbox Code Playgroud)
那两种风格有什么不同?有快速的编程风格指南吗?
我有以下结构定义:
struct ThreadManager: Equatable {
let fid: Int
let date: NSDate
let forumName: String
let typeid: Int
var page: Int
var threadList: [Thread]
var totalPageNumber: Int?
}
Run Code Online (Sandbox Code Playgroud)
线程是:
struct Thread: Equatable {
let author: Author
let replyCount: Int
let readCount: Int
let title: String
let tid: Int
let isTopThread: Bool
var attributedStringDictionary: [String: NSAttributedString]
var postDescripiontTimeString: String
var hasRead: Bool
}
Run Code Online (Sandbox Code Playgroud)
如何将 ThreadManager 变量编码为 NSData?我尝试使用以下功能,但它不起作用。
func encode<T>(var value: T) -> NSData {
return withUnsafePointer(&value) { p in
NSData(bytes: p, length: …
Run Code Online (Sandbox Code Playgroud) 在主项目中,我有一个名为:结果的类。
我通过Cocoapods导入了第三个框架,也称为Result。Result框架具有一个名为Result的类。
在项目中,如何在Result框架中使用Result类?
我有很多图像.喜欢:
<img src="src1"/>
<img src="src2"/>
<img src="src3"/>
Run Code Online (Sandbox Code Playgroud)
有些图像可能不存在.因此浏览器将显示损坏的图像图片.这很难看.如何使用Javascript而不是jQuery来确定图像是否存在?如果没有,请提供本地图像以替换它.谢谢.
我尝试了代码,它取代了所有不仅存在的图像.
function imgError(image) {
image.onerror = "";
image.src = "http://www.hi-pda.com/forum/uc_server/data/avatar/000/85/69/99_avatar_middle.jpg?random=10.20420048222877085";
return true;
}
var imgs = document.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) {
imgs[i].onerror=imgError(imgs[i]);
}
Run Code Online (Sandbox Code Playgroud)
图像是
<img src="rrrrr" />
<img src="http://www.hi-pda.com/forum/uc_server/data/avatar/000/52/56/39_avatar_middle.jpg"/>
Run Code Online (Sandbox Code Playgroud)
第一张图片不存在,第二张图片存在.当我在chrome中运行时,所有图片都被替换了......
ios ×9
swift ×8
rx-swift ×4
css ×1
html ×1
image ×1
javascript ×1
sqlite ×1
uialertview ×1
xcode ×1