小编Mic*_*nen的帖子

git reset --mixed, - soft和--hard有什么区别?

我希望拆分提交,不知道要使用哪个重置选项.

我在看页面你能解释一下"git reset"用简单的英语做什么吗?,但我意识到我并不真正理解git索引或临时区域是什么,因此解释没有帮助.

此答案中的用例--mixed--soft看起来一样(当你想要修复和重新发送时.)有人可以将其分解吗?我意识到--mixed可能是选择,但我想知道为什么.最后,怎么样--hard

有人能给我一个如何选择3个选项的工作流程示例吗?

git version-control

691
推荐指数
12
解决办法
17万
查看次数

是否可以在每个项目(或每个文件,甚至)的Xcode中设置缩进设置?

我工作的一些项目使用等于3或4个空格的tab键设置而另一个需要实际的标签.另一个根据目录混合两者.

有没有办法为每个项目设置这些设置,甚至更好,每个文件?如果没有,有人有一个聪明的方法处理这个?(除了"只记得你应该使用哪个设置并在开始编辑之前更改它")

xcode tabs indentation

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

UIView animateWithDuration:减慢动画帧速率

CADisplayLink用来EAGLView在游戏中以每秒60次的方式绘制帧.

当我调用时UIView animateWithDuration:,帧速率下降到正好一半,在动画持续时间内从60到30 fps.一旦动画结束,fps立即上升到60.

我也尝试使用NSTimer动画方法而不是CADisplayLink仍然得到相同的结果.

当扬声器图标淡出时按下音量按钮时会发生相同的行为,因此可能正在使用animateWithDuration.因为我希望能够在我的应用程序中顺畅地处理扬声器图标,这意味着我不能只重写我的动画代码以使用不同的方法animateWithDuration,但需要找到适合它的解决方案.

我知道有一个选项可以减慢模拟器上调试的动画速度,但是,我在设备上遇到这种情况并且没有启用这样的选项.我也尝试使用各种选项,animateWithDuration如线性和用户交互,但没有一个有改进.

我也知道我可以设计一个仍然能够以不同的帧速率工作的引擎.然而,这不是解决该问题的理想方案,因为高fps对于游戏来说是理想的.

有人看过这个问题还是以前解决了?

animation objective-c nstimer uiview ios

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

为什么我无法使用IAudioEndpointVolume :: SetMasterVolumeLevelScalar为USB/Firewire音频接口设置主音量

我正在尝试修复一个围绕portmixer的Audacity错误.输出/输入级别可以使用mac版本的portmixer进行设置,但不能始终在Windows中进行设置.我正在调试portmixer的窗口代码,试图让它在那里工作.

使用IAudioEndpointVolume :: SetMasterVolumeLevelScalar设置主音量适用于板载声音,但使用专业外部USB或火线接口(如RME Fireface 400),输出音量不会改变,尽管它反映在该设备的Window声音控制面板中,还有系统调音台.

此外,在我们的程序之外,更改系统混音器的主滑块(在任务栏中)没有任何效果 - 声卡输出相同(完整)级别,而不管系统所处的级别如何.更改输出级别的唯一方法是使用硬件开发人员为卡提供的自定义应用程序.

IAudioEndpointVolume :: QueryHardwareSupport函数返回ENDPOINT_HARDWARE_SUPPORT_VOLUME,因此它应该能够执行此操作.

许多设备上的输入和输出都存在此行为.

这可能是Window的错误吗?

可以通过模拟(缩放)输出来解决这个问题,但这不是首选,因为它在功能上并不相同 - 更好的是让音频接口进行缩放(特别是如果它涉及前置放大器的输入).

c++ windows audio audacity wasapi

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

让宏定义为函数返回值是不好的做法吗?

使用定义的宏来有条件地返回一个值有一个缺点,即只看客户端代码可能会在宏的点退出.

我正在考虑的用例是写一个值和错误检查,如下所示:

#define WRITE_CHK(file, param)\
if (!write_that_returns_zero_on_fail(file, param)) {\
   handle_error();\
   return false;\
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

bool myfunc()
{
   ...
   WRITE_CHK(file, param) // function might return here
   ...
   return true;
}
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果宏的好处(将在我的代码中的许多地方使用)将超过上面提到的缺点.除了简单地扩展(不使用宏)之外,是否还有其他选择?

c c++ macros

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

什么时候无状态类函子代替交流风格功能?

我发现在这么喜欢仿函数的一些很好的例子一个,所有的说服力的例子似乎在定义类的使用状态operator().

我在一本书中找到了一个例子来定义没有状态的函数调用操作符,我不禁觉得这是一个尴尬的用法,而且一个普通的样式函数指针,会比operator()在各方面使用更好 - 更少的代码,更少的变量(你必须实例化比较器),它可能由于实例化而更有效,并且没有意义或封装的损失(因为它只是一个函数).

我知道std::sort让你在operator()类和函数之间进行选择,但由于上述逻辑,我总是只使用这些函数.

为什么选择课程的原因是什么?

这是一个例子(释义):

class Point2D {
   //.. accessors, constructors
   int x,y;
};
class HorizComp {
public:
   bool operator()(const Point2D& p, const Point2D& q) const
   { return p.getX() < q.getX(); }
};

class VertComp {
public:
   bool operator()(const Point2D& p, const Point2D& q) const
   { return p.getY() < q.getY(); }
};

template <typename E, typename C>
void printSmaller(const E& p, const E& q, const C& isLess) { …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading functor

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

什么是c内存管理的好比喻?

我试图找到一个很好的比喻来解释内存分配,初始化和释放到非技术受众.我听说过邮政服务的使用方式很好地讨论了传递参考/价值,但对于分配/解除分配却没有那么多.
因此,我认为使用租用空间的想法可能有用,但我想知道SO工作人员是否可以提供更好的东西.

c memory-management

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

没有匹配的调用函数(期望引用指针而不是指针)

我从xcode(3.2.4)/ gcc(4.0)得到错误:

/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.cpp: In member function 'void DeviceToolBar::ShowInputDialog()':
/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.cpp:817: error: no matching function for call to 'DeviceToolBar::ShowComboDialog(wxChoice*&, wxString)'
/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.h:74: note: candidates are: void DeviceToolBar::ShowComboDialog(wxChoice*, wxString&)
Run Code Online (Sandbox Code Playgroud)

因此看起来它期望在ShowComboDialog中引用指针,但我不知道为什么因为签名显然是正常的指针.此外,如果它期望引用指针,我调用它的方式应该工作.这是第一个错误,并且之前没有特殊警告.

此外,这编译在MSVC 2008快递中.请给我一个线索.

//in the class def
//(only relevant portions included
class DeviceToolBar:public ToolBar {

 public:
   DeviceToolBar();
   virtual ~DeviceToolBar();
   void ShowInputDialog();
 private:
   void ShowComboDialog(wxChoice *combo, wxString &title);

   wxChoice *mInput;
};

//in the cpp file
void DeviceToolBar::ShowInputDialog()
{
   ShowComboDialog(mInput, wxString(_("Select Input Device")));
}

void DeviceToolBar::ShowComboDialog(wxChoice *combo, wxString &title)
{
//...
}
Run Code Online (Sandbox Code Playgroud)

c++ macos xcode gcc

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

是否可以从课外使用直接的ivar访问以提高效率?

我可以定义一个具有属性的类来从类外部访问我的ivars.

我也可以使用myInst-> ivar语法以C-struct方式访问.

在C++中,我会使用访问器,但在objective-c中,有些情况下我可能需要直接访问.消息传递系统在某些上下文中对访问器造成了很大的性能损失,因为消息不像C++方法那样内联.

例如,在具有称为标量的ivar和在其上定义的属性的类中.标量是一个简单的浮点值:

-(void) doWorkWithMyClass:(MyClass*)myinst
{
   // array and other locals declaration omitted 
   for (int i = 0; i < reallyBigX; i++) {
      result += [myinst scalar] * array[i];
      [myinst computeNextScalar:i];
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我将[myinst标量]更改为myinst->标量,则该方法将运行得更快,因为使用带有访问器的调用将占用此循环中的大部分CPU.

与C++一样,我理解直接的ivar访问通常是不鼓励的,但在这种情况下,当速度很重要时,它是否可以接受?如果没有,是否有更优选的方法仍使用objective-c类?

performance class objective-c ivar

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

malloc并获得最近释放的内存

我正在分配数组并释放音频线程的每次回调.主用户线程(Web浏览器)根据用户输入不断分配和释放内存.我正在将非常规浮动阵列发送到声卡.(在我的个人资料的页面中示例.)我们的想法是听到程序状态的变化.

当我打电话给malloc(sizeof(float)*256*13)小号时,我会得到一个充满各种浮子的阵列,这些浮子看似随意分布.将它随机称为是不对的 - 可能这是来自以前存储块的内容.这是我期望并想要利用的行为.然而,当我做malloc(sizeof(float)*256*14)更大的时候,我得到的数组只用零填充.我想知道为什么这个悬崖存在,如果我能做些什么来绕过它.我知道这是标准的未定义行为,但我希望有人知道某些系统上malloc的实现可能有一个解释.

这是否意味着malloc还会将较大尺寸的块设置为零?这将是令人惊讶的,因为它不会有效.即使有更多的内存被清零,我也会发现有时会发生一些事情,因为阵列不断变化.
如果可能的话,我希望能够获得在最近释放的内存上重新分配的内存块,因此任何替代方案都会受到欢迎.

我想这是一个奇怪的问题,因为我的目标是探索未定义的行为并故意使用错误的编程实践,但这是我感兴趣的应用程序,所以请忍受uninited数组的使用.我知道这种用法的行为是不明确的,所以请耐心等待,不要告诉我不要这样做.我正在使用mac 10.5进行开发.

c memory malloc initialization

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