标签: unwrap

swift - 从var中删除空格(UITextField输入)不起作用

我是swift的新手,但是从ObjectiveC背景来看,我试图通过单击按钮从textfield获取输入到var.

现在,当我尝试使用"stringByTrimmingCharactersInSet"和许多其他选项删除空格时,它不起作用.这是我的代码,

    var someVariable = urlInputComponent.text!
    if someVariable.containsString(" "){
        someVariable = someVariable.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
        print(someVariable)

    }
Run Code Online (Sandbox Code Playgroud)

我也尝试将结果分配给一个新的var,

        let trimmed: String = someVariable.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
        print(trimmed)
Run Code Online (Sandbox Code Playgroud)

但仍然无法删除空白.我的猜测是我对"Unwrapped value"这个概念感到困惑,如果有人可以帮助我,那将会非常有帮助.谢谢!

string var ios swift unwrap

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

忽略NaN的Numpy包装

我有一个长的numpy数组,带有风向记录,unwrap在运行算法来检测数据中的跳跃之前,我试图使用numpy的数组。数据包含NaN,而numpy似乎无法处理此问题。一旦遇到一个NaN,所有随后返回的数据点unwrap也将转换为NaN。有没有解决的办法?

我认为我的问题可以归结为与此处发布的问题相同,但是只能得出结论,该错误与数据中的NaN有关,并且没有提供解决方案。

python numpy unwrap

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

有什么方法可以执行 unwrap_or_return 错误(任何错误)

有什么方法可以简化以下示例中的返回(最初从这里复制):

use std::num::ParseIntError;

fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
    let first_number = match first_number_str.parse::<i32>() {
        Ok(first_number)  => first_number,
        Err(e) => return Err(e),
    };

    let second_number = match second_number_str.parse::<i32>() {
        Ok(second_number)  => second_number,
        Err(e) => return Err(AnotherError::ParseError("error")),
    };

    Ok(first_number * second_number)
}
Run Code Online (Sandbox Code Playgroud)

我的意思是:

use std::num::ParseIntError;

fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
    let first_number = first_number_str.parse::<i32>()
        .unwrap_or_return(|e| Err(e));

    let second_number = second_number_str.parse::<i32>()
        .unwrap_or_return(|e| Err(AnotherError::ParseError("error"));

    Ok(first_number * second_number)
}
Run Code Online (Sandbox Code Playgroud)

return rust unwrap

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

Rust:使 unwrap() 打印 error.display() 而不是 error.debug()

在 Rust 程序中,我使用 a Result,它使用 aString作为其Error类型:

fn foo() -> Result<String, String>

我作为错误返回的字符串看起来像这样:
lorem\nipsum

现在我调用我的函数并将其解包如下:
foo.unwrap();

现在,当foo()返回 an时Error,它会打印错误,如下所示:
lorem\nipsum

然而,我实际上想看到的是以下错误消息:

lorem
ipsum
Run Code Online (Sandbox Code Playgroud)

据我所知,这种行为的原因是unwrap(),在字符串的情况下,调用debug()而不是display()which 的实现方式不同(新行显示为新行,但调试打印为“\n”) 。

有没有一种快速的方法可以让我以一种调用的方式 unwrap() 我的结果,而display()不是debug()让打印的错误实际显示换行符而不是“\n”?

debugging error-handling rust unwrap display

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

Swift 3-生成的QR Code UIImage附加到电子邮件,但出现错误“在解开可选值时发现nil”

我有QR Code生成器正在工作,它会向我显示图像qrImageView UIImageView

现在,我要做的就是将该QR Code图片附加到电子邮件中。尝试了下面指定的代码,但出现错误“在展开可选值时发现nil”。

请帮忙!

产生QR CODE的功能

  func generateQRCode(from string:String) -> UIImage? {

    let data =  string.data(using: String.Encoding.isoLatin1)

    if let filter = CIFilter(name:"CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 100, y: 100)

        if let output = filter.outputImage?.applying(transform) {
            return UIImage(ciImage: output)
        }
    }
    return nil
}

@IBAction func generateAction(_ sender: Any) {

    if let actualText = qrCodeTextField.text {
        let image = generateQRCode(from: actualText)
        qrImageView.image = image
    }



}
Run Code Online (Sandbox Code Playgroud)

用于将QR代码附加到电子邮件的代码

func configureMailController() -> MFMailComposeViewController {
    let …
Run Code Online (Sandbox Code Playgroud)

qr-code uiimage email-attachments unwrap swift3

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

有没有办法使用NSParagraphStyle.default.mutableCopy()而无需强行解包?

我试图得到一个实例NSParagraphStyle.default.mutableCopy()但是我们确定它mutableCopy()总是包含一个值吗?

var paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
Run Code Online (Sandbox Code Playgroud)

如果没有强行解缠,是否可以做到这一点?

ios swift unwrap

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

迅速从AnyHashable转换为枚举

我有这个游乐场:

import Foundation

enum WeekDay: Int {
    case mon, tues, wed, thurs, fri, sat, sun
}

let wd = WeekDay(rawValue: 0)! // mon

let param = [wd: [1, 2, 3]]
message(dict: param)

func message(dict: [AnyHashable: [Int]?]) {
    for (k, v) in dict {
        print(k, type(of: k), v) // mon AnyHashable Optional([1, 2, 3])

        if let k = k as? WeekDay {
            print("got it: \(k)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我永远不会被got it: ...打印出来.

为什么我不能从一个人投AnyHashableWeekDay

我想AnyHashable在函数中使用的原因 …

enums casting optional swift unwrap

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

斯威夫特:我在“ tableView.delegate = self”中得到“意外发现零”

如屏幕截图所示,我在按钮和视图控制器之间连接了segue。 我在按钮和视图控制器之间连接了segue。

一切正常,直到我将类选择为“ ViewController”。 在此处输入图片说明

每次单击“添加”按钮,代码都会崩溃,并显示以下错误:“线程1:致命错误:在展开可选值时意外发现nil” 在此处输入图片说明

我现在真的很困惑。有人可以帮我吗?

tableview ios swift unwrap xcode9

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

如何unwrap_or到String

使用时unwrap_or,如何获得String

我已经将我的问题归结为此(使用更多类型注释而不是需要):

fn main() {
    let mut blah: String;
    let opt: Option<&str> = Some("foo");
    blah = opt.unwrap_or("bar");
}
Run Code Online (Sandbox Code Playgroud)

这(合理地)告诉我,我们需要一个String不是&str.

error[E0308]: mismatched types
  --> src/main.rs:33:12
   |
33 |     blah = opt.unwrap_or("bar");
   |            ^^^^^^^^^^^^^^^^^^^^ expected struct `std::string::String`, found &str
   |
   = note: expected type `std::string::String`
   = note:    found type `&str`
Run Code Online (Sandbox Code Playgroud)

所以我尝试提供想要的类型.

blah = opt.unwrap_or("bar".to_string());
Run Code Online (Sandbox Code Playgroud)

但我被告知:

error[E0308]: mismatched types
  --> src/main.rs:33:26
   |
33 |     blah = opt.unwrap_or("bar".to_string());
   |                          ^^^^^^^^^^^^^^^^^ expected &str, found struct `std::string::String`
   | …
Run Code Online (Sandbox Code Playgroud)

types rust unwrap

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

无法强制将非可选类型“可达性”的展开值用于swift 5

Cannot force unwrap value of non-optional type 'Reachability'在行上收到针对iOS 13(Swift 5)的警告xcode 11.1 let reachability = Reachability()!

我尝试了if语句并尝试执行,但是似乎都没有用。给出警告“调用可以抛出,但错误不能从属性初始化器抛出”

import Reachability

class ReachabilityDetect {

   let reachability = Reachability()!

   var dm = DataModel()

   func addObservers(datamodel: DataModel) {
       self.dm = datamodel
       NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(note:)), name: .reachabilityChanged, object: reachability)
       do{
           try reachability.startNotifier()
       }catch{
           Util.DLog("Reachability notifier niet te starten.")
       }
   }

   @objc func reachabilityChanged(note: Notification) {

      let reachability = note.object as! Reachability

       switch reachability.connection {
       case .wifi:
           Util.DLog("WiFi is actief")
           self.dm.dataConnectionisWifi     = true
           self.dm.dataConnectionisCellular = …
Run Code Online (Sandbox Code Playgroud)

unwrap reachability-swift

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