小编lei*_*701的帖子

如何在UIAlertController外部点击时关闭UIAlertController?

如何UIAlertController在外面敲击时解雇UIAlertController

我可以添加一种UIAlertAction风格UIAlertActionStyleCancel来解雇UIAlertController.

但我想补充一点,当外界使用者开关功能UIAlertControllerUIAlertController将开除.怎么做?谢谢.

uialertview ios uialertcontroller

43
推荐指数
5
解决办法
4万
查看次数

关于在RxSwift中flatMapLatest的困惑

我在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. …

functional-programming reactive-cocoa swift rx-swift

12
推荐指数
4
解决办法
1万
查看次数

如何手动将下一个信号发送到RxSwift中的observable?

我使用以下代码创建一个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)

reactive-programming ios swift rx-swift

12
推荐指数
1
解决办法
5659
查看次数

我们什么时候应该在RxSwift中调用addDisposableTo(disposeBag)?

我们创建一个DisposeBag,然后Observable订阅Observable,然后addDisposableTo(disposeBag),我知道什么时候DisposeBag它会去除,它会调用dispose()释放资源,否则会导致内存泄漏.

如果Observable发送CompleteError在有限时间内终止.当Observable之前终止DisposeBagDEINIT,我有需要调用addDisposableTo(disposeBag)DisposeBag收到终止消息后,会自动释放订阅它的观察者吗?

let disposeBag = DisposeBag()

Observable.just("")
    .subscribe { event in
        print(event)
    }
    .addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)

我应该.addDisposableTo(disposeBag)明确吗?我想在发送""之后,Observable会终止并释放观察者吗?

functional-programming ios swift rx-swift

11
推荐指数
1
解决办法
4936
查看次数

RxSwift中的双向绑定

我在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改变,它会通知变量,并设置变量的值,而该变量的值时,它会通知物业.我认为这会导致无休止的循环......

functional-programming ios reactive-cocoa swift rx-swift

9
推荐指数
3
解决办法
9914
查看次数

Xcode8 beta6中的Apple Mach-O链接器警告,swift3.0.仍然存在于Xcode8 GM中

我正在使用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中!

xcode ios swift

9
推荐指数
0
解决办法
353
查看次数

Swift编程风格

我在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)

那两种风格有什么不同?有快速的编程风格指南吗?

ios swift

6
推荐指数
1
解决办法
210
查看次数

如何在swift中将结构编码和解码为NSData?

我有以下结构定义:

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)

sqlite ios swift

3
推荐指数
1
解决办法
6669
查看次数

类名称与Framework中的类冲突

在主项目中,我有一个名为:结果的类。

我通过Cocoapods导入了第三个框架,也称为Result。Result框架具有一个名为Result的类。

在项目中,如何在Result框架中使用Result类?

ios swift

3
推荐指数
1
解决办法
1445
查看次数

如果没有使用Javascript设置默认图像,请检查图像是否存在

我有很多图像.喜欢:

<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中运行时,所有图片都被替换了......

html javascript css image ios

1
推荐指数
1
解决办法
8679
查看次数