0

我很困惑。我需要比较产品日期代码。他们看起来像 12-34-56。我写了一些代码来分解这些部分并比较它们。此代码在操场上运行良好。但是当我在视图控制器中使它成为一个函数时,值出现 NIL 并且当打印到日志或在休息时查看时我得到很多“可选(“12-34-56”)”值。我尝试在许多地方打开包装,但没有任何效果。?不要被变量日期和月份混淆,因为它们不是产品代码,根据使用的生产机器可以有 90 天和 90 个月。

func compaireSerial(oldNumIn: NSString, newNumIn: String) -> Bool {
        // take the parts of the number and compare the pics on at a time.         
        // Set up the old Num in chunks
        let oldNum = NSString(string: oldNumIn)
        let oldMonth = Int(oldNum.substringToIndex(2))
        let oldDay = Int(oldNum.substringWithRange(NSRange(location: 3, length: 2)))
        let oldYear = Int(oldNum.substringFromIndex(6))
        print(oldMonth,oldDay, oldYear)


        // Set up the new Num in chunks
        let newNum = NSString(string: newNumIn)
        let newMonth = Int(newNum.substringToIndex(2))
        let newDay = Int(newNum.substringWithRange(NSRange(location: 3, length: 2)))
        let newYear = Int(newNum.substringFromIndex(6))
        print(newMonth, newDay, newYear)

        // LETS Do the IF comparison steps.
        if oldYear < newYear {
            return true
        } else if oldMonth < newMonth {
            return true
        } else if oldDay < newDay {
            return true
        } else {
            return false
        }
    }

可能感谢任何人。我完全被难住了

4

2 回答 2

0

我不知道如何删除我的问题,所以我发帖让其他人知道它已修复。事实证明拍卖工作正常,但输入的 NSUserDefaults 值是可选的。所以我正在输入可选内容。解开 NSUser 值后一切正常。

于 2016-02-03T22:01:35.057 回答
0

所有Int()带参数的初始化器String总是返回一个可选的Int
Playground 中的实时结果列不表示可选但打印它。

let twentyTwo = Int("22")  |  22
print(twentyTwo)           |  "Optional(22)\n"
于 2016-02-03T21:41:13.267 回答