小编Sam*_*ikh的帖子

怎么把Delegate转换成Observable RxSwift?

我有委托方法,我需要用RxSwift中的委托代理包装。我已经使用Bond和Reactive完成了此操作,但是在这里,我无法在RxSwift中找到转换它的正确方法。

遵循协议

    import UIKit

/**
 A protocol for the delegate of a `DetailInputTextField`.
 */

    @objc
    public protocol CardInfoTextFieldDelegate {

        /**
         Called whenever valid information was entered into `textField`.

         - parameter textField:         The text field whose information was updated and is valid.
         - parameter didEnterValidInfo: The valid information that was entered into `textField`.
         */
        func textField(_ textField: UITextField, didEnterValidInfo: String)

        /**
         Called whenever partially valid information was entered into `textField`.

         - parameter textField:                  The text field whose information was updated and …
Run Code Online (Sandbox Code Playgroud)

delegation swift rx-swift

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

如何过滤combineLatest仅在一项更改时触发?

我编写了如下小演示代码。我做了两个不同类型的PublishSubject。当我更改任何页面触发器时,仅当observable_page发生更改时,我才需要获取页面触发器。

class ViewController: UIViewController {

    func loadData(page: Int, keyword: String) -> Observable<[Int]> {
        let _result = Observable.of([1,2,3,4])
        return _result
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let observable_keyword = PublishSubject<String>()
        let observable_page = PublishSubject<Int>()
        let trigger_tap = PublishSubject<Void>()

        let tapObservable = trigger_tap.debug("trigger_tap", trimOutput: true)
        let stringObservable = observable_keyword.debug("stringObservable", trimOutput: true)
        let pageObservable = observable_page.debug("pageObservable", trimOutput: true)

        let request_call_trigger = Observable.combineLatest(tapObservable, pageObservable)
            .debug("request_call_trigger", trimOutput: true)

        let page …
Run Code Online (Sandbox Code Playgroud)

filter swift rx-swift combinelatest

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

GoogleMobileVision GoogleSignIn使用Cocoapods复制符号?

我正在使用CocoaPods添加两个框架.

target 'TestGoogleLib' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for TestGoogleLib
    pod 'GoogleMobileVision'
    pod 'GoogleSignIn'


end
Run Code Online (Sandbox Code Playgroud)

但是当我跑 - 我得到重复的错误.似乎两个框架都使用相同的文件.

我的Pod版本是1.5.3

duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._localAuthenticationInfo in:


ld: 13 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

如何使用CocoaPods安装两个没有冲突---我删除了所有冲突日志 - 如果需要,我可以添加它们.

duplicate-symbol cocoapods google-signin google-ios-vision

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

如何在Swift中保存和从数据库中获取一个对象?

我有一个将Object保存到数据库的方法.根据逻辑,每当有互联网时,它将通过从服务器下载来保存对象.方法如下.

func saveConfiguration (config : ConfigDao){

        let entity = NSEntityDescription.entityForName("AppConfig", inManagedObjectContext:self.del.managedObjectContext!)

        let configurationContext = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: self.del.managedObjectContext!) as AppConfig

        configurationContext.categoriesVer = Int32(config.categoriesVer)
        configurationContext.fireBallIp = config.fireBallIP
        configurationContext.fireBallPort = Int32(config.fireBallPort)
        configurationContext.isAppManagerAvailable = config.isAppManagerAvailable
        configurationContext.isFireBallAvailable = config.isFireballAvailable
        configurationContext.timePerQuestion = config.timePerQuestion


    }
Run Code Online (Sandbox Code Playgroud)

问题是这会添加所有对象,而不会替换它,所以我的第一个查询是

"如何在DB中只添加一个对象,并在下一个Object到来时替换?"

我也想要检索相同的对象,唯一的一个对象,通常在数组中,我会获取最后一个索引,但是如何只保存一个并在DB中获取相同的内容.

func fetchAppConfig() -> AppConfig {

        var fetchRequest =  NSFetchRequest (entityName: "AppConfig")

        var error : NSError?
        let fetchResults = del.managedObjectContext?.executeFetchRequest(fetchRequest, error: &error) as [NSManagedObject]

        if error != nil {
            println ("Error \(error)")
        }

        return  fetchResults
    }
Run Code Online (Sandbox Code Playgroud)

谢谢.

database core-data ios swift

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

如何在 iOS UIButton 中添加阴影?

需要专家的帮助

我正在制作 UIButton 自定义,我正在裁剪背景并在 UIButton 上显示如下。

[self setBackgroundImage:[self getSingleColorImageForLinear:self.frame] forState:UIControlStateSelected];




 //Method to make take image
-(UIImage *)getSingleColorImageForLinear:(CGRect)frame{


    CGSize size = CGSizeMake(frame.size.width,frame.size.height);
    UIGraphicsBeginImageContextWithOptions(size, NO, 0);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

    size_t gradientNumberOfLocations = 1;
    CGFloat gradientLocations[1] = { 0.0 };
    CGFloat gradientComponents[4] = { 0, 0, 0, 0.3, };

    CGGradientRef gradient = CGGradientCreateWithColorComponents (colorspace, gradientComponents, gradientLocations, gradientNumberOfLocations);

    CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(0, size.height), 0);


    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    CGGradientRelease(gradient);
    CGColorSpaceRelease(colorspace);
    UIGraphicsEndImageContext();

    return image;

}
Run Code Online (Sandbox Code Playgroud)

现在我想应用,在 Adob​​e Photoshop 中看到的投影属性到这个图像, …

uibutton dropshadow ios

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

电子邮件验证器 RxSwift?

我正在使用 RxSwift

pod 'RxSwift',    '~> 4.0'
pod 'RxCocoa',    '~> 4.0'
Run Code Online (Sandbox Code Playgroud)

我看到了用户名、密码验证的例子,因为它的工作原理是

 func validateUsername(_ username: String) -> Observable<ValidationResult> {
        if username.isEmpty {
            return .just(.empty)
        }


        // this obviously won't be
        if username.rangeOfCharacter(from: CharacterSet.alphanumerics.inverted) != nil {
            return .just(.failed(message: "Username can only contain numbers or digits"))
        }

        // this obviously won't be
        if username.rangeOfCharacter(from: CharacterSet.alphanumerics.inverted) != nil {
            return .just(.failed(message: "Username can only contain numbers or digits"))
        }

        let loadingValue = ValidationResult.validating

        return API
            .usernameAvailable(username)
            .map { available in
                if available { …
Run Code Online (Sandbox Code Playgroud)

validation email-validation swift rx-swift

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

错误:在解包可选值时意外发现nil.怎么解决?

我看到很多这样的帖子,尝试过很少的东西,但我无法得到错误的理由,我也无法解决.

我有一个自定义类.

class Profile: NSObject {
    var PlayerID: Int? = 0
   }
Run Code Online (Sandbox Code Playgroud)

对于这个类,我在AppDelegate中有对象

var profile: Profile!
Run Code Online (Sandbox Code Playgroud)

在其他一些课程中,我正在使用

if let playerID = appDelegate.profile.PlayerID {

}
Run Code Online (Sandbox Code Playgroud)

它给出了错误

致命错误:在展开Optional值时意外发现nil

这个错误的原因是什么?如何解决它.

我尝试了什么

if let playerID = appDelegate.profile.PlayerID as? Int {

}
Run Code Online (Sandbox Code Playgroud)

我也试过了

if let playerID = appDelegate.profile.PlayerID as Int! {

  }
Run Code Online (Sandbox Code Playgroud)

谢谢.

ios swift

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