【问题标题】:Xamarin - NSURL returning nullXamarin - NSURL 返回 null
【发布时间】:2015-07-02 23:28:50
【问题描述】:

我正在使用 Xamarin 的统一 API 构建一个应用程序,并正在创建一个带有字符串的 NSUrl。但是,一旦我尝试创建 NSUrl,应用程序就会崩溃。

string url = "comgooglemaps-x-callback://?daddr=" + destination; 
NSUrl googleMapsURL = new NSUrl (url);

url 的值为comgooglemaps-x-callback://?daddr=600+Drake+Apartments\n600+Drake+St,+Vancouver+BC+V6B+5W7,+Canada

控制台中的消息是:

无法初始化“Foundation.NSUrl”类型的实例: 本机 'initWithString:' 方法返回 nil。可以忽略 这个条件通过设置 MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure 为 false。

我该如何解决这个问题?

【问题讨论】:

    标签: ios xamarin nsurl


    【解决方案1】:

    这会起作用(用你上面的代码测试过)。

    using System.Web.Services;
    ...
    
    string destination = System.Web.HttpUtility.UrlEncode(
        "600 Drake Apartments\n600 Drake St, Vancouver BC V6B 5W7, Canada");
    

    现在变成了

    "comgooglemaps-x-callback://?daddr=600+Drake+Apartments%0a600+Drake+St%2c+Vancouver+BC+V6B+5W7%2c+Can…"
    

    将引用 System.Web.Services 添加到项目中。我的猜测是您的 URL 编码,无论它来自哪里,都与 Apple API 所期望的不兼容。

    【讨论】:

    • 当您假设一个看起来完全有效的字符会正常时,我已经看到 URL 编码失败。有时,如果数据是复制 + 粘贴的,它可能是 Unicode 版本的逗号或引号,肉眼并不总是能看到差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2019-09-13
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2020-07-15
    相关资源
    最近更新 更多