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
プレイグラウンドのリアルタイムの結果列はオプションを示していませんが、印刷は示しています。

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