小编yuf*_*yuf的帖子

使用自动布局约束时,如何获取视图的当前宽度和高度?

我不是在谈论框架属性,因为从中你只能获得xib中视图的大小.我正在讨论视图由于其约束(可能在旋转之后,或响应事件)而调整大小的时间.有没有办法获得当前的宽度和高度?

我试图通过其约束来寻找宽度和高度约束,但是当存在内在约束时,这不是很干净并且失败(因为我无法区分这两者).此外,仅当它们实际具有宽度和高度约束时才有效,如果它们依赖其他约束来调整大小,则它们不会.

为什么这对我来说如此困难.ARG!

ios autolayout

103
推荐指数
3
解决办法
8万
查看次数

从不同的线程中的相同套接字发送和接收不起作用

我读到它应该同时安全地从不同的线程,但我的程序有一些奇怪的行为,我不知道什么是错的.

我有并发线程与客户端套接字通信

  1. 一个人发送到套接字
  2. 一个做select,然后从同一个套接字recv

正如我仍在发送,客户端已经收到数据并关闭了套接字.同时,我正在对该套接字执行select和recv,它返回0(因为它已关闭)所以我关闭了这个套接字.但是,发送还没有返回...因为我在这个套接字上调用close,所以发送调用因EBADF而失败.

我知道客户端已正确接收数据,因为我在关闭套接字后输出它是正确的.但是,在我的结尾,我的发送调用仍然返回错误(EBADF),所以我想修复它,以便它不会失败.

这并不总是发生.它可能发生在40%的时间.我不在任何地方睡觉.我应该在发送或收发之间暂停吗?

这是一些代码:

发送:

while(true)
{
    // keep sending until send returns 0
    n = send(_sfd, bytesPtr, sentSize, 0);

    if (n == 0)
    {
        break;
    }
    else if(n<0)
    {
        cerr << "ERROR: send returned an error "<<errno<< endl; // this case is triggered
        return n;
    }

    sentSize -= n;
    bytesPtr += n;
}
Run Code Online (Sandbox Code Playgroud)

接收:

 while(true)
{
    memset(bufferPointer,0,sizeLeft);
    n = recv(_sfd,bufferPointer,sizeLeft, 0);
    if (debug) cerr << "Receiving..."<<sizeLeft<<endl;
    if(n == 0)
    {
        cerr << "Connection closed"<<endl; // …
Run Code Online (Sandbox Code Playgroud)

c++ sockets tcp send recv

2
推荐指数
2
解决办法
9517
查看次数

有没有办法在explore api中按categoryId限制搜索?

我可以通过在/ search api中指定"categoryId"参数进行限制,但是/ explore呢?"查询"参数表示它也会搜索类别,但它也会提取技巧.完全不相关的场地出现在结果中只是因为有人在提示中提到了类别名称的一部分.

我可以删除与该类别不匹配的结果,但我希望有其他方式.

我想使用/探索的原因是我可以得到评级和价格,以及样本照片.

foursquare

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

标签 统计

autolayout ×1

c++ ×1

foursquare ×1

ios ×1

recv ×1

send ×1

sockets ×1

tcp ×1