有没有办法获得CFStreamError的字符串描述?

时间:2014-03-12 00:32:31

标签: macos cocoa cfnetwork cfstream

我正在使用一个API,它给了我一个CFStreamError(据说已被弃用,但Apple自己显然不在乎。)

我知道一些值,我当然可以编写多个嵌套的switch语句来将我所知道的所有值转换为字符串,但是会有我不知道的值。

是否有一些方便的方法来获取错误信息?我不关心它是否已本地化,因为它最终只会在我们的日志中结束。

2 个答案:

答案 0 :(得分:0)

处理错误的'旧',前NSError方式通常涉及应该由应用程序(即开发人员)内部使用的返回代码,而不是用于呈现给用户。

对于较新的API,返回的NSError实际上包含要呈现给用户的信息(如果适用)。

至于CFStreamError -
CocoaDev上有一个关于使CFStreamError人类可读的条目:

http://cocoadev.com/CFStreamErrorCodes

基本上它涉及从CFStream Error Domain Constants手动检查各种错误域。

可以在Macnetworkprog邮件列表的this post中找到开发人员技术支持的更多信息。

答案 1 :(得分:0)

这适用于POSIX域错误:

[HttpPost]
    public IActionResult Create(CampgroundDetails campgroundDetails)
    {
        if (ModelState.IsValid)
        {
            string filePath = UploadFile(campgroundDetails);

            using (SqlConnection connection = new SqlConnection(ConnectionString.DBCS))
            {
                using (SqlCommand command = new SqlCommand("sp_InsertNewCampground", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@CampgroundName", campgroundDetails.CampgroundName);
                    command.Parameters.AddWithValue("@State", campgroundDetails.State);
                    command.Parameters.AddWithValue("@Peak", campgroundDetails.Peak);
                    command.Parameters.AddWithValue("@SeasonDateFrom", campgroundDetails.SeasonDateFrom);
                    command.Parameters.AddWithValue("@SeasonDateTo", campgroundDetails.SeasonDateTo);
                    command.Parameters.AddWithValue("@NaturalFeatures", campgroundDetails.NaturalFeatures ?? "");
                    command.Parameters.AddWithValue("@Recreation", campgroundDetails.Recreation ?? "");
                    command.Parameters.AddWithValue("@Facilities", campgroundDetails.Facilities ?? "");
                    command.Parameters.AddWithValue("@ImagePath", filePath);
                    command.Parameters.AddWithValue("@Overview", campgroundDetails.Overview);

                    if (connection.State == ConnectionState.Closed)
                        connection.Open();

                    command.ExecuteNonQuery();
                }
            }
            return RedirectToAction("index", "home");
        }

        return View();
    }

例如:

2020-01-31 09:58:02.996603-0800等等void CFWriteStreamCB(CFWriteStreamRef _Null_unspecified,CFStreamEventType,void * _Null_unspecified):26 POSIX错误:操作超时