Aplikasi ini pada dasarnya menghitung akselerasi dengan memasukkan kecepatan dan waktu awal dan akhir dan kemudian menggunakan rumus untuk menghitung akselerasi. Namun, karena nilai dalam kotak teks adalah string, saya tidak dapat mengonversinya menjadi bilangan bulat.
@IBOutlet var txtBox1 : UITextField
@IBOutlet var txtBox2 : UITextField
@IBOutlet var txtBox3 : UITextField
@IBOutlet var lblAnswer : UILabel
@IBAction func btn1(sender : AnyObject) {
let answer1 = "The acceleration is"
var answer2 = txtBox1
var answer3 = txtBox2
var answer4 = txtBox3
ios
swift
int
uitextfield
Marwan Qasem
sumber
sumber
var answer1 = Int(txtBox1.text)
Jawaban:
Ide Dasar, perhatikan bahwa ini hanya berfungsi di Swift 1.x (lihat jawaban ParaSara untuk melihat cara kerjanya di Swift 2.x):
Pembaruan untuk Swift 4
sumber
'NSString' does not have a member named 'toInt'
. Ada Ide?NSString
danString
dua objek yang berbeda dan memiliki metode yang berbeda.NSString
memiliki metode yang disebut.intValue
Perbarui Jawaban untuk swift 2.0 :
toInt()
Metode diberikan kesalahan. Karena, Dalam Swift 2.x,.toInt()
fungsi itu dihapus dari String. Sebagai gantinya, Int sekarang memiliki penginisialisasi yang menerima sebuah String:sumber
"\(someInt)"
tidak baikString(someInt)
jauh lebih mudah dibacaInt(firstText.text)!
dan kemudian saya masih melihat opsional. Mengapa? Apakah saya belum membuka bungkusnya?nil
. Mungkin tidak terjadi ketika string berasal dari elemen UI seperti dalam kasus ini. Tapi salah satu cara untuk mencegah kecelakaan adalah dengan menambahkan nilai default ke string:let a:Int? = Int(firstText.text ?? "")
.myString.toInt()
- ubah nilai string menjadi int.Cepat 3.x
Jika Anda memiliki bilangan bulat yang bersembunyi di dalam sebuah string, Anda dapat mengonversi dengan menggunakan konstruktor bilangan bulat, seperti ini:
Seperti tipe data lainnya (Float dan Double) Anda juga dapat mengonversi dengan menggunakan NSString:
sumber
edit / perbarui: Xcode 11.4 • Swift 5.2
Silakan periksa komentar melalui kode
Isi file IntegerField.swift :
Anda juga perlu menambahkan ekstensi itu ke proyek Anda:
Isi file ekstensi UITextField.swift :
Isi file Extensions Formatter.swift :
Isi file NumberFormatter.swift ekstensi :
Isi file StringProtocol.swift ekstensi :
Proyek sampel
sumber
Anda bisa menggunakannya
NSNumberFormatter().numberFromString(yourNumberString)
. Ini bagus karena mengembalikan opsional yang kemudian dapat Anda uji denganif let
untuk menentukan apakah konversi berhasil. misalnya.Cepat 5
sumber
cepat 4.0
Anda juga bisa menggunakan Binding Opsional selain dari penjilidan paksa.
misalnya:
sumber
// Xcode 8.1 dan swift 3.0
Kami juga dapat mengatasinya dengan Binding Opsional, Cukup
sumber
Di Swift 4.2 dan Xcode 10.1
sumber
Cepat 3
Cara paling sederhana dan lebih aman adalah:
Hindari nilai yang tidak valid pengaturan jenis keyboard ke papan angka:
sumber
Dalam Swift 4:
sumber
saya telah membuat program sederhana, di mana Anda memiliki 2 bidang txt Anda mengambil input dari pengguna dan menambahkannya untuk membuatnya lebih mudah dimengerti, silakan cari kode di bawah ini.
semoga ini membantu.
sumber
Swift 3.0
Coba ini, Anda tidak perlu memeriksa kondisi apa pun yang saya lakukan semuanya cukup gunakan fungsi ini. Kirim string, angka, float, dobel, dll. Anda mendapatkan angka sebagai nilai atau 0 jika tidak dapat mengkonversi nilai Anda
Fungsi:
Penggunaan: Tambahkan fungsi di atas dalam kode dan untuk mengonversi penggunaan
let myNumber = getNumber(number: myString)
jikamyString
memiliki nomor atau string yang mengembalikan nomor yang dikembalikannya0
Contoh 1:
Keluaran:
printing number 9834
Contoh 2:
Keluaran:
printing number 9834
Contoh 3:
Keluaran:
printing number 9834
sumber
Berguna untuk String ke Int dan tipe lainnya
Gunakan seperti:
sumber
Tentang int () dan Swift 2.x: jika Anda mendapatkan nilai nol setelah konversi, periksa apakah Anda mencoba mengonversi string dengan angka besar (misalnya: 1073741824), dalam hal ini coba:
sumber
Swift3 terbaru kode ini hanya untuk mengkonversi string ke int
sumber
Karena string mungkin berisi karakter non-numerik, Anda harus menggunakan a
guard
untuk melindungi operasi. Contoh:sumber
Saya baru saja mendapat masalah yang sama. Solusi di bawah ini berfungsi untuk saya:
sumber
Gunakan ini:
ATAU
Jadikan UITextField KeyboardType Anda sebagai DecimalTab dari XIB atau storyboard Anda, dan hapus kondisi apa pun untuk melakukan perhitungan apa pun, misalnya.
Karena jenis keyboard adalah DecimalPad, tidak ada peluang untuk memasukkan 0-9 atau yang lain.
Semoga bantuan ini !!
sumber
sumber
Ini bekerja untuk saya
sumber
untuk Swift3.x
sumber
untuk solusi alternatif. Anda dapat menggunakan ekstensi tipe asli. Anda dapat menguji dengan taman bermain.
"2" .add (1)
sumber
Solusi saya adalah memiliki ekstensi umum untuk konversi string ke int.
sumber
sumber
Pertanyaan: string "4.0000" tidak dapat dikonversi menjadi integer menggunakan Int ("4.000")?
Jawab: Int () periksa string bilangan bulat atau tidak jika ya maka beri Anda bilangan bulat dan sebaliknya nihil. tetapi Float atau Double dapat mengonversi string nomor apa saja ke Float atau Double masing-masing tanpa memberikan nihil. Contoh jika Anda memiliki string integer "45" tetapi menggunakan Float ("45") memberi Anda nilai float 45,0 atau menggunakan Double ("4567") memberi Anda 45,0.
Solusi: NSString (string: "45.000"). IntegerValue atau Int (Float ("45.000")!)! untuk mendapatkan hasil yang benar.
sumber
Int in Swift berisi penginisialisasi yang menerima String. Ia mengembalikan Int opsional? karena konversi dapat gagal jika string tidak mengandung angka.
Dengan menggunakan pernyataan if let, Anda dapat memvalidasi apakah konversi berhasil.
Jadi kode Anda menjadi seperti ini:
sumber
Swift 5.0 dan Di Atas
Kerja
Dalam hal jika Anda membelah
String
itu menciptakan duasubstrings
dan bukan duaStrings
. Metode ini di bawah ini akan memeriksaAny
dan mengubahnya t0NSNumber
mudah untuk mengkonversiNSNumber
keInt
,Float
apa yang pernah jenis data yang Anda perlu.Kode Aktual
Pemakaian
Lulus
String
untuk memeriksa dan mengkonversi keDouble
sumber
Swift5 float atau int string ke int:
sumber
Mulai dari 3 cepat , saya harus memaksakan #% @ saya! string & int dengan "!" kalau tidak, itu tidak akan berhasil.
Sebagai contoh:
sumber
var counterInt = counter.map { Int($0) }
? Di manacounter
akan menjadiString?
guard
danif let
pernyataanKonversi nilai String ke Integer di Swift 4
sumber