程序设计

专业和发烧友程序员的问答

11
在实践中真的使用了pImpl成语吗?
我正在阅读Herb Sutter撰写的“ Exceptional C ++”一书,在那本书中,我了解了pImpl习惯用法。基本上,该想法是为a的private对象创建一个结构class并动态分配它们以减少编译时间(并以更好的方式隐藏私有实现)。 例如: class X { private: C c; D d; } ; 可以更改为: class X { private: struct XImpl; XImpl* pImpl; }; 以及在CPP中的定义: struct X::XImpl { C c; D d; }; 这似乎很有趣,但是我以前从未见过这种方法,无论是在我工作的公司还是在看过源代码的开源项目中,我都从未见过。因此,我想知道这种技术是否真的在实践中使用? 我应该在任何地方使用它还是要谨慎使用?是否建议将此技术用于性能非常重要的嵌入式系统?
165 c++  oop  pimpl-idiom 

7
REST DELETE是否真的等幂?
删除应该是幂等的。 如果我删除http://example.com/account/123,它将删除该帐户。 如果我再次执行此操作,由于该帐户已不存在,我希望输入404吗?如果我尝试删除一个从未存在的帐户该怎么办?
165 http  rest  http-headers 

6
MSBuild内置变量列表
如何获取内置的MSBuild变量列表? 我需要知道如何确定当前项目的csproj名称,并认为了解在MSBuild中还能找到什么还有帮助。
165 msbuild 

11
指向子类的指针上的delete是否调用基类的析构函数?
我有一个class A使用堆内存分配为其字段之一。类A被实例化并作为指针字段存储在另一个类(class B。 当我完成了类B的对象时,我会调用delete,我假设它调用了析构函数...但是这是否也调用了类A的析构函数? 编辑: 从答案中,我认为(如果不正确,请编辑): delete B实例的调用B ::〜B(); 哪个电话 A::~A(); A::~A 应该显式地deleteA对象的所有堆分配的成员变量; 最终,将存储该类B实例的内存块返回到堆-当使用new时,它首先在堆上分配一个内存块,然后调用构造函数对其进行初始化,现在在所有析构函数都被调用以最终确定对象之后对象所在的块返回到堆。

4
视图控制器之间进行通信的最佳方式是什么?
作为对Objective-C,可可和iPhone开发人员的新手,我强烈希望充分利用语言和框架。 我正在使用的资源之一是斯坦福大学的CS193P类笔记,它们已经留在网上了。它包括讲义,作业和示例代码,并且由于该课程是由Apple开发人员提供的,因此我绝对认为它是“从马口算起的”。 课堂网站:http: //www.stanford.edu/class/cs193p/cgi-bin/index.php 第08课与构建基于UINavigationController的应用程序有关,该应用程序将多个UIViewControllers推送到UINavigationController堆栈上。这就是UINavigationController的工作方式。这是合乎逻辑的。但是,幻灯片中有一些关于UIViewController之间进行通信的严厉警告。 我将从这些严肃的幻灯片中引用:http : //cs193p.stanford.edu/downloads/08-NavigationTabBarControllers.pdf 第16/51页: 如何不共享数据 全局变量或单例 这包括您的应用程序委托 直接依赖关系使代码的可重用性降低 而且更难调试和测试 好。我对此感到沮丧。不要盲目地将用于在viewcontroller之间进行通信的所有方法扔到您的应用程序委托中,并在应用程序委托方法中引用viewcontroller实例。公平的诺夫。 再进一步,我们得到这张幻灯片,告诉我们应该做什么。 第18/51页: 数据流最佳实践 弄清楚究竟需要传达什么 为您的视图控制器定义输入参数 为了在层次结构之间进行通讯,请使用松散耦合 为观察者定义通用接口(例如委派) 然后,在此幻灯片之后是看似占位符的幻灯片,在该幻灯片中,讲师显然使用UIImagePickerController的示例演示了最佳实践。我希望这些视频可用!:( 好的,所以...我怕我的objc-fu不太牢固。我也对上面引用的最后一行感到困惑。我一直在尽职调查这个问题,发现似乎是一篇体面的文章,在谈论观察/通知技术的各种方法:http : //cocoawithlove.com/2008/06/five-approaches-to -listening-observing.html 方法5甚至将委托表示为方法!除了...对象只能一次设置一个委托。因此,当我有多个ViewController通讯时,我该怎么办? 好的,那是设置帮派。我知道我可以通过引用appdelegate中的多个viewcontroller实例轻松地在应用程序委托中执行通信方法,但是我想以正确的方式进行此类操作。 请回答以下问题,以帮助我“做正确的事”: 当我尝试在UINavigationController堆栈上推送新的viewcontroller时,谁应该执行此推送。 我的代码中哪个类/文件是正确的位置? 当我想影响一些数据块(伊娃的值),我UIViewControllers之一,当我在不同的UIViewController,什么是“正确”的方式做到这一点? 假设我们一次只能在一个对象中设置一个委托,那么当讲师说“为观察者定义通用接口(如委托)”时,实现将是什么样子。如果可能的话,一个伪代码示例将非常有帮助。

14
如何调试堆损坏错误?
我正在Visual Studio 2008下调试(本机)多线程C ++应用程序。在看似随机的情况下,出现“ Windows触发了断点...”错误,并指出这可能是由于堆。这些错误不会总是立即使应用程序崩溃,尽管可能会在不久后崩溃。 这些错误的最大问题是它们仅在损坏发生后才弹出,这使得它们很难跟踪和调试,尤其是在多线程应用程序上。 什么样的事情会导致这些错误? 如何调试它们? 欢迎使用提示,工具,方法,启示...。
165 c++  windows  debugging  heap 

1
为什么Attributes.IsDefined()缺少重载?
受SO问题启发。Attribute类具有IsDefined()方法的多个重载。涵盖了应用于程序集,模块,成员信息,参数信息的属性。MemberInfo重载涵盖PropertyInfo,FieldInfo,EventInfo,MethodInfo,ConstructorInfo。 这将处理大多数AttributeTargets。除了一个缺点:Attribute.IsDefined(Type,Type)没有重载,因此您可以检查是否在类上定义了属性。或针对此问题的结构,委托或枚举。 并不是说这是一个真正的问题,Type.GetCustomAttributes()可以解决此问题。但是所有的BlahInfo类型也都具有此功能。我不知道缺乏对称性。我无法确定为什么这会对Type造成问题。猜测继承问题并不能向我解释。混合使用ValueType可能会领先,但这仍然没有意义。我不买“他们忘了”,他们从来不买。 为什么这种超载丢失了?
165 c#  .net  reflection 

9
在Objective-C中,为什么要检查self = [super init]是否不为零?
我有一个关于在Objective-C中编写init方法的一般问题。 我到处都看到(Apple的代码,书籍,开放源代码等),init方法应该在继续初始化之前检查self = [super init]是否不为零。 用于init方法的默认Apple模板是: - (id) init { self = [super init]; if (self != nil) { // your code here } return self; } 为什么? 我的意思是init什么时候会返回nil?如果我在NSObject上调用init并返回nil,那么一定要搞砸了,对吧?在这种情况下,您甚至不编写程序... 类的init方法返回nil真的很常见吗?如果是这样,在什么情况下,为什么?
165 objective-c  null  init 


7
Android和XMPP:当前可用的解决方案
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 去年关闭。 改善这个问题 如今,哪个XMPP库将是Android开发的最佳选择? 我一直在使用修补的Smack库,如本文其他许多问题所建议的那样。但是,这是两年前Smack API的补丁版本。尽管总体上效果不错,但我正在探索其他任何最新的选择。 我一直在研究官方的Smack API,经过一些研究,现在看来它可能还不错(尽管我还没有在实际的应用程序中尝试过)。 我遇到的另一个解决方案是Beem的aSMACK库。Beem是一个相当新的Android XMPP客户端,据我了解,他们正在使用自己的补丁版本的aSMACK。 最后,有一个aSMACK,但也有相当长的一段时间没有更新(如网站所建议)。 您还有其他建议吗?您是否可以解释为什么我应该选择以上其中一项?
165 android  xmpp  smack  asmack 

4
在何处托管开源项目:CodePlex,Google Code,SourceForge?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我一直在阅读关于SO的“如何促进开源项目”的待解决问题积压。毫不奇怪,许多答案都将人们指向了SoureForge / FreshMeat和其他站点等,以及博客和其他内容。这让我开始思考在哪里托管项目是最好的地方,为什么呢? 由于我的第一个项目目前托管在CodePlex上,因此我开始浏览Google搜索结果以收集有关每个项目的优缺点的信息。但是我发现的比较是过时的(超过2年)。 http://www.stum.de/2008/12/13/sourceforge-vs-codeplex/ http://www.developmentnow.com/blog/2006/11/codeplex-vs-sourceforge/ http:// www。 spacesocket.com/forum/thread-6654.html 等... 因此,下一个问题变为“我应该在多个站点上托管我的项目”,下一篇文章向其提供了预期的答案(非常感谢!因为这很难维护)。 在多个站点托管一个开源项目 根据各种开源托管站点(例如CodePlex,GitHub,Google Code,SourceForge等)的当前状态,一个站点相对于另一个站点是否有明显的优缺点?也就是说,我应该坚持使用CodePlex还是不使用其中一种替代品而错过了?会有人为新的未知项目带来更多流量吗? 我计划更详细地研究每个站点,以查看它们都提供了什么,但是鉴于SO的优秀人员广博的知识,我想首先从这个问题开始。 更新 按照下面的erjiang答案...我目前正在使用Mercurial进行版本控制,并且我对TFS以外的其他任何东西都开放。另外,我目前的项目只是我自己开发的,但未来的项目可能是协作的,因此值得考虑...

11
在Linux中安装Pillow(Python模块)期间失败
我正在尝试使用pip安装Pillow(Python模块),但是会引发以下错误: ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting 因此,正如错误所述,我尝试了: pip install pillow --global-option="--disable-jpeg" 但是它失败了: error: option --disable-jpeg not recognized 有什么提示如何处理吗?
165 python  linux  pillow 

9
在HTML5中使用target =“ _ blank”可以吗?
我记得在某处阅读过,在HTML5中不再可以target="_blank"在HTML5中使用,但现在找不到了。 可以继续使用target="_blank"吗? 我知道这通常被认为是一个坏主意,但这是通过最简单的方法为PDF之类的东西打开新窗口的方式,并且它也不需要您依赖JavaScript。
165 javascript  html  window 

25
如何在Android中获取当前日期?
我写了下面的代码 Date d = new Date(); CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime()); 但是问我参数,我想要字符串格式的当前日期, 喜欢 28-Dec-2011 这样我就可以设置了TextView, 解释一下,如果您认为有必要,我是Android开发的新手。

29
用户'homestead'@'localhost'的访问被拒绝(使用密码:是)
我在使用Laravel 5.0的Mac OS Yosemite上。 在我的本地环境中,php artisan migrate我一直在跑: 用户'homestead'@'localhost'的访问被拒绝(使用密码:是) 组态 这是我的.env APP_ENV=local APP_DEBUG=true APP_KEY=***** DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret app \ config \ database.php 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'unix_socket' => '/tmp/mysql.sock', 'charset' => 'utf8', …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.