آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
این سایت محصول قابل فروش ندارد و بخش تیکت و پشتیبانی آن غیر فعال است
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل لود کردن آدرس فارسی در  وب ویو (حل شد)

Farshid Roohi  8 سال پیش  8 سال پیش
0 0

سلام خسته نباشید

من یه لیستی از Rss ها رو میگیرم که بعضی از خبرگزاری ها لیست خبر رو فارسی میذارن متاسفانه ،  مثل این

http://www.tabnak.ir/fa/news/666164/حمایت-ضمنی-ترامپ-از-تمامیت-ارضی-اوکراین

حالا مشکل اینجاست که موقع لود برنامه کرش میکنه و ارور : fatal error: unexpectedly found nil while unwrapping an Optional value

رو میده

برنامه با آدرس های انگلیسی درست کار میکنه - توی stack زیاد گشتم ولی چیزی پیدا نکردم

از دوستان ممنون میشم راهنمایی کنین

  let url = NSURL (string: RssUrl)
  let requestObj = NSURLRequest(URL: url!);  
  webView.loadRequest(requestObj)
 
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Farshid Roohi  8 سال پیش
+2 0

 پاسخ صحیح

حل این مشکل  رو توی سایتی پیدا نکردم و اینو با آزمون خطا خودم نوشتم

آدرس سایت رو میدین بهش و خروجی یه رشته encod شده میده که توی WebView به مشکل نخورین.

شرح کد :

اول url رو بر اساس اسلش  Split می کنه و لیستی از رشته های رو میده

توی حلقه آخرین آیتم رو  تبدیل به UTF_8 میکنه و توی آیتم اول که http هست دو تا // میذاره و در بقیه حالت ها یه / میذاره و در آخر رشته رو برمیگردونه.

 
 
 func encodeUrl(url:String)->String{
        var ReturnValue:String = ""
        let urlSlice = url.componentsSeparatedByString("/")
        
        var numIndex:Int = 0
        for item in urlSlice {
            numIndex++
            
            if numIndex == (urlSlice.count) {
                ReturnValue+=item.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
            }else if numIndex == 1{
                ReturnValue+=item+"//"
            }else{
                ReturnValue+=item+"/"
            }
        }
        return ReturnValue

    }
0 0
با سلام و احترام و تشکر. در سویف ۳ بجای stringByAddingPercentEncodingForFormData جایگزینی پیدا نکردم البته وقتی سرچ کردم در سویفت ۳ همین رو استفاده کردن ولی گویا در نسخه آخر تغییر کرده (8 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .