如果之前已经问过这个问题,请告诉我,我会删除这个问题。但是,我无法找到一个回答此问题的人。
我目前正在使用此功能: https://developer.apple.com/reference/foundation/outputstream/1410720-write
func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
写入流。它返回一个整数,根据文档,这个整数用于确定数据是否成功发送:
我对最后一个感到好奇。在我的代码中,我得到了这个错误的值,在我的情况下是-1。我希望看到具体失败的是什么。但是如何从整数中获取错误对象?
基本上,我如何得到这个:&#34;有关错误的更多信息可以通过streamError获得。&#34;
感谢。
编辑:
首先感谢你的回答。但是,我最终使用了以下代码:
for buffer in buffers {
let output = outputStream?.write((buffer.mData?.load(as: UnsafePointer<UInt8>.self))!, maxLength: Int(buffer.mDataByteSize))
if output == -1 {
let error = outputStream?.streamError
print("\(#file) > \(#function) > Error: \(error?.localizedDescription)")
}
}
并打印出错误为零。
答案 0 :(得分:1)
InputStream
和OutputStream
都继承自Stream
,let written = stream.write(buffer, maxLength: length)
if written == -1 {
if let error = stream.streamError {
print(stream.streamError?.localizedDescription ?? "Unknown error")
}
一个streamError
属性:
返回表示流错误的NSError对象。
简单示例:
streamError
显然有些情况下失败后未设置open()
写,例如如果你没有<?php
use app\classes\App as App;
require ROOT . '/vendor/autoload.php';
require 'functions.php';
spl_autoload_register(function ($class_name) {
$validNameSpaces = [
'app\controllers\\', 'app\models\\', 'app\classes\\'
];
foreach($validNameSpaces as $namespace) {
if(strpos($class_name, $namespace) === 0) {
$path = __DIR__ . '/../' . strtr($class_name, '\\', '/') . '.php';
if(is_file($path) && is_readable($path)) {
include_once $path;
return true;
}
}
}
return false;
});
App::instance();
include_once "routes.php";
流。