我对使用Swift进行编码非常陌生,我不太确定这里发生了什么-有人可以帮忙吗?
谢谢
import UIKit
class SecondViewController: UIViewController {
var toDoItems:[String] = []
@IBOutlet weak var toDoItem: UITextField!
@IBAction func addItem(sender: AnyObject) {
toDoItems.append(toDoItem.text)
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)
println(toDoItems)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以将闭包作为函数中的可选参数?
我需要这样的东西(伪代码):
fn function(x: int, optional expr |int| -> int) -> int
Run Code Online (Sandbox Code Playgroud)
和用法将是这样的:
// just the mandatory argument
n = function(z);
Run Code Online (Sandbox Code Playgroud)
或者可选:
// passed closure would be called inside the function
n = function(z, |x| x * x);
Run Code Online (Sandbox Code Playgroud)
如果它甚至可能,我只是无法掌握正确的语法(会欣赏正确匹配表达式的完整示例).
我在这里有这个代码
let fundsreceived = String(stringInterpolationSegment: self.campaign?["CurrentFunds"]!)
cell.FundsReceivedLabel.text = "$\(funds received)"
Run Code Online (Sandbox Code Playgroud)
它正在打印出来 Optional(1000)
我已经添加!到变量但是可选项不会消失.知道我在这里做错了什么吗?
假设我有一个C#选项列表(这里称为x),我通过删除空值创建一个新列表(这里调用新列表y)
static void Main()
{
var x = new List<long?> { 7, 8, 9, null, 10, null, 11 };
var y = x.Where(e => e != null);
Console.WriteLine("{0}", y);
}
Run Code Online (Sandbox Code Playgroud)
然后y推断出类型List<long?>.获得某种类型的惯用方法是List<long>什么?明确展开或显式投射?还是有更干净的方式?
在实际执行我处理的,这些值来作为自选项目的名单,我需要做的将这些名单下游集,所以"扯皮",以后续操作是不是我想做的事(虽然我可以在代码中稍后进行大量的空检查... yuk).我真的想要一个long-lists变量.如何在C#中最好地思考和处理?
我写了这个丑陋的生物:
Optional<Transaction> secondSide = findSecondSide(transaction.getId());
if(secondSide.isPresent()) {
secondSide.get().setFlag("Y");
save(secondSide.get());
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以重构这个,而不使用isPresent()和get()?
我正在使用一个match语句,.chars().next()并且如果它匹配某个字符,则想要将字符附加到字符串.我想这样做
keyword.push(line.chars().next())
Run Code Online (Sandbox Code Playgroud)
但得到一个错误:
expected type 'char' found type Option<<char>>
Run Code Online (Sandbox Code Playgroud)
我该如何将其附加到我的字符串上?
我想编写一个接受自定义类的值的函数myType,然后返回myType option.不确定我的问题是签名,内容还是返回值.
例如,我试图编写以下内容(它已经简化,没有任何实际意义):
let rec myFunc (t:myType) myType option =
let t2 = myFunc t in
match t2 with
| None -> None
| _ -> t
Run Code Online (Sandbox Code Playgroud)
我收到以下编译错误:
错误:此模式匹配'a选项类型的值,但预期模式匹配类型'b - >'c - >'d的值
不确定我的语法有什么问题,或者我误解了OCaml.
我想在没有这些必需参数的情况下创建函数:
func myMethod(Name name:String,Age age:Int){
print(name)
}
//call
myMethod(Name:"Donald")
Run Code Online (Sandbox Code Playgroud)
这可以吗?
在swift中使用@objc,我们可以在协议中创建一个可选方法
@objc protocol MyProtocol {
@objc optional func anOptionalMethod()
}
Run Code Online (Sandbox Code Playgroud)
但是如何在不使用@objc的情况下创建可选的协议方法?
我试图根据可选响应中的double设置文本提供程序的值.我觉得应该有一个更短的方法来做到这一点,但当我尝试使用默认值时,它坚持默认必须是一个双,我想要一个字符串来替换它.
伪代码:
If we have a current value
use it
else
use "--"
Run Code Online (Sandbox Code Playgroud)
我认为会起作用
let currentValue = uvProduct.currentValue()?.value
currentTextProvider = CLKSimpleTextProvider(text: String( currentValue ?? "--" ))
Run Code Online (Sandbox Code Playgroud)
目前的尝试
let currentValue = uvProduct.currentValue()?.value
let currentTextProvider : CLKSimpleTextProvider
if (currentValue != nil){
currentTextProvider = CLKSimpleTextProvider(text: String( currentValue! ))
} else {
currentTextProvider = CLKSimpleTextProvider(text: "--")
}
Run Code Online (Sandbox Code Playgroud)