小编use*_*171的帖子

std :: bind一个std :: shared_ptr参数不会增加use_count

以下代码:

#include <stdio.h>
#include <memory>
#include <functional>

struct Foo{
    Foo():
        m_p(std::make_shared<int>())
    {}
    Foo(const Foo &foo)
    {
        printf("copy\n");
    }
    std::shared_ptr<int> m_p;
};

void func(Foo foo)
{}

int main()
{
    Foo foo;
    std::function<void (void)> f = std::bind(func, foo);
    printf("use count : %ld\n", foo.m_p.use_count());
    f();
}
Run Code Online (Sandbox Code Playgroud)

得到的结果:

copy
copy
use count : 1
copy
Run Code Online (Sandbox Code Playgroud)

由于Foo被复制,我认为m_p的use_count应为2.

我正在使用clang ++

Apple LLVM 5.0版(clang-500.2.79)

我在调试模式下编译代码.

c++ c++11

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

如何在展开功能中执行segue

我有3个MVC,在这里命名为A,B,C.

A是主MVC,按钮"Menu"通过popover segue连接到B.

A还连接到C,手动显示segue.

B是一个弹出窗口MVC,按钮"Detail"连接到A,带有展开segue.

C是具有详细信息的细节MVC.

在A.的展开函数内部,我调用performSegueWithIdentifier来显示C.


预期的行为是

  • 单击B中的"详细信息"按钮
  • B消失,A出现
  • C出现了

但运行我得到的应用程序.

  • 单击B中的"详细信息"按钮
  • B消失,A出现
  • C出现了
  • C消失,A出现

C突然出现并消失,这不是我想要的.


一些额外的信息

  • 更多按钮需要Popover B.
  • A嵌入在UINavigationController中.连接A - > C而不是B - > C,用于C顶部的后退按钮.

ios uistoryboard segue uistoryboardsegue

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

标签 统计

c++ ×1

c++11 ×1

ios ×1

segue ×1

uistoryboard ×1

uistoryboardsegue ×1