小编Gal*_*age的帖子

Swift 2:IBOutlet Collection [UIButton]!泄漏记忆

最近在我的应用程序中,我发现我的UIButton插座集合正在泄漏内存.

我只有

    @IBOutlet var TabBarButtons: [UIButton]!
Run Code Online (Sandbox Code Playgroud)

而来自乐器 在此输入图像描述

谁能告诉我出了什么问题?随着时间的推移,NSArray中的变量数量不断增长,我拥有的是一个包含IB的4个UIButton的数组.

memory-leaks ios swift swift2

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

如何在iOS9中展示PopOver

我正在尝试创建一个弹出窗口,当我呈现视图控制器时,背景总是纯黑色,大小是全屏.

我似乎无法弄清楚什么是错的,这是我的代码

  @IBAction func distancePopOver( sender : UIBarButtonItem){

    //a UIViewController that I created in the storyboard
    let controller = storyboard!.instantiateViewControllerWithIdentifier("distancePopOver")
    controller.modalPresentationStyle= UIModalPresentationSTyle.PopOver
    controller.preferredContentSize = CGSizeMake(200,30)
    self.presentViewController(controller, animated: true, completion: nil)

    //Configure the Popover presentation controller
    let popController = (controller.popoverPresentationController)!
    popController.permittedArrowDirections = UIPopoverArrowDirection.Down
    popController.barButtonItem = sender
    popController.delegate = self
  }
Run Code Online (Sandbox Code Playgroud)

每当我点击UIBarButtonItem时,它都会以全屏显示视图,但它不应该是我在第5行中指定的大小吗?

ios swift

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

测量线程的上下文切换时间

我想计算上下文切换时间,并且我正在考虑使用互斥体和条件变量在两个线程之间发出信号,以便一次只有一个线程运行。我可以用来CLOCK_MONOTONIC测量整个执行时间并CLOCK_THREAD_CPUTIME_ID测量每个线程运行的时间。
那么上下文切换时间就是(total_time - thread_1_time - thread_2_time)。为了获得更准确的结果,我可以循环它并取平均值。

这是估计上下文切换时间的正确方法吗?我想不出任何可能出错的地方,但我得到的答案不到 1 纳秒。

我忘了提及,循环并取平均值的时间越多,得到的结果就越小。

编辑

这是我的代码片段

    typedef struct
    {
      struct timespec start;
      struct timespec end;
    }thread_time;

    ...


    // each thread function looks similar like this
    void* thread_1_func(void* time)
    {
       thread_time* thread_time = (thread_time*) time;

       clock_gettime(CLOCK_THREAD_CPUTIME_ID, &(thread_time->start)); 
       for(x = 0; x < loop; ++x)
       {
         //where it switches to another thread
       }
       clock_gettime(CLOCK_THREAD_CPUTIME_ID, &(thread_time->end));

       return NULL;
   };

   void* thread_2_func(void* time)
   {
      //similar as above
   }

   int main()
   {
      ... …
Run Code Online (Sandbox Code Playgroud)

c time multithreading

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

同一类下两个对象的比较

我还是 C++ 的新手(一般编程),如果这个问题很愚蠢或被问过很多次,请原谅我。这是问题..假设在同一个类下有两个对象 A 和 B。

例如

  class Fruit{
  int apple;
  int banana;
      fruit(int x, int y){
       apple=x;
       banana=y;
      }
  }
  Fruit A(1,1);
  Fruit B(1,1);
Run Code Online (Sandbox Code Playgroud)

如果我想检查对象 A 的内容是否与对象 B 的内容相同,我是否必须比较从 A 到 B 的每个变量,或者

   if(Object A == Object B)
   return true;
Run Code Online (Sandbox Code Playgroud)

会做这份工作吗?

c++ comparison

4
推荐指数
1
解决办法
2万
查看次数

使用memcpy复制对象数组

最近我在我的项目中遇到了错误双重免费或损坏错误.在一些测试运行之后,问题被固定到使用memcpy的复制功能.

  class Pen
  {    string make;
       string model;
       string color;
       public:
       Pen();
  }

  class A
  { private:

    Pen* array; //an array that stores pen objects 
    int NumOfItem;   
    int Maxsize;        
    void CopyArray(const A& source);

    public:
    A();
    A(const A& source);//copy constructor where uses the CopyArray private mentioned below
    ~A();
  }






  void A::CopyArray(const A& source)
  {       
    memcpy(array, source.array, len * sizeof(Pen));//
    return;
  }

  void A::A(const A& source)//copy constructor that performs a deep copy from B
  {    array = new Pen[source.NumOfItem];
       NumOfItem = source.NumOfItem; …
Run Code Online (Sandbox Code Playgroud)

c++ arrays object memcpy

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

C++删除指向包含另一个指针的对象的指针

让我们说吧

class A {
  A* array;
public:
   A (){ 
    array= new A [4];
  }

  ~A (){
    delete array;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我们在堆上创建这样的对象,我们如何释放对象

A* object_ptr =new A();
Run Code Online (Sandbox Code Playgroud)

我对释放指向包含另一个指针的对象的指针感到有点困惑.....

c++ object dynamic-memory-allocation

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