小编Ell*_*son的帖子

UIAlertController半透明故障/ bug

当iOS呈现警报时,半透明度是不变的.当我的应用程序出现一个时,警报首先是白色,只有半秒钟,然后它变得半透明.这是一个小问题,但它看起来很混乱,警报应该在我认为的任何地方保持一致.无论如何这里是代码:

UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Invalid Credentials" message:@"Please try again." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    [_username becomeFirstResponder];
}];
[alertVC addAction:ok];
[self presentViewController:alertVC animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

我也对这里的人们的意见感兴趣.对于任何人来说,这只是一个小问题吗?看起来这只是UIAlertController工作方式(至少在开发人员使用它时).无论如何,它看起来很乱,我认为它是一个错误(除非我做错了),因为它看起来与iOS提出警报时看起来不一样,即使它应该.

cocoa-touch ios uialertcontroller

9
推荐指数
1
解决办法
967
查看次数

确定坐标是否在区域内(MKMapView,用PHP解决)

我正在使用MKMapView,我发送我的php程序可见区域(中心lat,中心lon,span lat,span lon).我需要使用php确定坐标是否在该区域内.我希望某处有一个标准配方,但我还没找到.我会继续尝试提出一个公式,但它的结果非常复杂(希望没有像我所说的那样,我不相信,我不相信).

php latitude-longitude coordinate-systems mkmapview

8
推荐指数
1
解决办法
235
查看次数

PHP:当客户端在写入时断开连接时,socket_write 挂起

当我在我的 iOS 应用程序中接收数据时(收到了一些数据,但不是全部)我故意退出应用程序并socket_write挂在服务器上。这是相关的代码:

error_log("start write");
$sent = socket_write($client, $string, $length);
error_log("end write");
Run Code Online (Sandbox Code Playgroud)

"start write"在错误日志中收到消息,但就是这样,它会继续挂起,直到我重新启动 php 程序。

我尝试设置超时,但随后我尝试上传一个大文件,但在上传完成之前它似乎已超时。我认为超时是一段时间的不活动,而不是客户端连接的总时间。无论如何,任何帮助表示赞赏。我假设socket_write如果套接字断开连接会返回,但要么我错了,要么代码错了。谢谢你的帮助。

编辑

基本上,我需要知道客户端何时断开连接。看起来 fwrite、socket_send 和 socket_write 在客户端断开中间写入和阻塞模式时都挂起。如果我关闭阻塞模式,我的代码如下所示:

function send_data($client, $string)
{
    $length = strlen($string);
    socket_set_nonblock($client);
    while(true)
    {
        $sent = socket_write($client, $string, $length);
        //OR - $sent = socket_send($client, $string, $length, 0);

        if($sent === FALSE)
        {
            error_log("false");
            return;
        }
        if($sent < $length)
        {
                $string = substr($string, $sent);
                $length -= $sent;
        }
        else
            return;  
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,$sent === FALSE当客户端断开连接时,而且当它们暂时不可用时,这被证明是在发送前几个字节后发生的,因此不会发送整个字符串。

php apache

5
推荐指数
1
解决办法
1369
查看次数