Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
1.4k kez görüntülendi
ios development kategorisinde tarafından
tarafından düzenlendi

Merhaba arkadaşlar,

Sanırım herkeste ki gibi uzun zaman sonra güncellediğim uygulamamda bir çok hata aldım şuanda tek takıldığım kısım bir butonun onClick anında 'URL' açmaya çalışıyorum ama click anında bana soru başlığındaki operatör hatasını veriyor. URL kullanıcı adı ve şifre değerlerini dışarıdan alıyor;

Kod linkteki şekilde;
https://paste.ubuntu.com/23751248/

2 Cevaplar

0 oy
tarafından

Muhtemelen, url içinde verdiğin parametrelerden biri string değildir, bu yüzdende + oparatörüyle birleştirme yapamıyordur. Url içinde birleştirebilmek için iki değişkeninde opsiyonel olmadığından ve string formatında olduğundan emin olmalısın. Bu şekilde sorun çıkarmayacaktır.

İyi çalışmalar.

tarafından
hüseyin bey, url içerisindeki parametreler string tipinde,
 
https://paste.ubuntu.com/23751381/

linke göz atarsanız bahsettiğiniz şekilde de kullanım yaptım ama yine başarılı olamadım

"fatal error: unexpectedly found nil while unwrapping an Optional value"

hatası aldım link'e değerler geliyor farklı bir string'e atayıp baktığımda çalışıyor link sıkıntı yok ama url olarak açmıyor.
tarafından
tarafından düzenlendi
Parametre olarak verdiğin değerlerin tipleri ne onu paylaşabilir misin ?

Son örneğinde paylaştığın şekilde çevirmeni zaten kabul etmez diye tahmin ediyorum.

https://paste.ubuntu.com/23751959/

Yukarıdaki örnekteki kullanımda sorun yaşamadım, tabi uygulama içinde bunu kullanıcaksan kullanmadan önce convert işleminin tamamlandığını check etmen daha sağlıklı olur.

Edit: String tipinde yazdığını görememişim, peki hiç build olmuyor değil mi ? Peki o parametreleri elle sen string olarak yazarsan, bu şekilde manuple ettiğinde çalışıyor mu ?

İllaki gözden kaçan ufak bir nokta var.
tarafından
Değerler kullanıcıya ait tc ve kişiye özel şifre ben iki veri tipinide string olarak alıyorum UITextField' lerden ve var username:String = "" değişkenine atama yapıyorum. Sizin örneğide denemedim ama sonuç aynı :(
tarafından
Editi atlamışsındır, diye tekrar yazıyorum :)

String tipinde yazdığını görememişim, hiç build olmuyor değil mi ? Peki o parametreleri elle sen string olarak yazarsan, bu şekilde manuple ettiğinde çalışıyor mu ?

Yeni textview dan alma direk değişkeni sne oluşturup, ata birini int birini string yap inti yani tc yi convert etmye çalış.

İllaki gözden kaçan ufak bir nokta var.
tarafından
Kesinlikle gözden kaçan ufak bir nokta ama bulamadım, değerleri elimle girdim hüseyin bey ama  keşke if şartına girse url oluştursa hatayı anlasam ama debug ettiğimde if bloğuna düşüyor ve oradan sonra direkt çıkıyor if'ten. Demo bir veri paylaşmak isterdim ama hem öyle bir verim yok hemde şahsa ait verileri paylaşma iznim yok.
tarafından
https://paste.ubuntu.com/23752107/

bunu deneyip, filtrelemek istediğin alan varsa onları gizleyip sonucu yazarmısın,
ama bence url encode ile alakalı
tarafından
Sorun çözüldü hüseyin bey url içerisinde boşluk kalan yerler var oralara html karşılığını atadım  '%20'  çalıştı. :)
tarafından
evet kullanmadan önce url encode etmek lazım, başka karakterlerdede sorun çıkar yoksa :)
0 oy
tarafından

şöyle bir deneyip log'ları kontrol edermisin.

@IBAction func GPerformance(_ sender: UIButton) {

    if let receivedUsername:String = USERNAME as? String {
        if let receivedPassword:String = USERPASSWORD as? String {
            if let url = URL(string: "https://blablanet.blabla.gov.tr/analytics/saw.dll?Dashboard&NQUser="+receivedUsername+"&NQPassword="+receivedPassword+"&portalPath=/shared/REPORT/_portal/PERFORMANCE&Page=WEEK%20Performance") {
                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(url, options: [:])
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
        } else {
            print("USERPASSWORD is nil")
        }
    } else {
        print("USERNAME is nil")
    }
}
tarafından
Yasin bey, operatör hatası almıyorum ama debug modda çalıştırdığım zaman;                           if let url = URL(string: "https...  satırına geldiğinde if bloğundan çıkıyor içine girmiyor.
tarafından
Yasin bey teşekkür ederim sorun çözüldü url içerisinde boşluk kalan yerler var oralara html karşılığını atadım '%20'  çalıştı.
...