在MyClass.m中,我已经定义了 – (void) myTest: (NSString *) withAString{ NSLog(@"hi, %@", withAString); } 和MyClass.h中的相应声明。 后来我想打电话 [self performSelector:@selector(mytest:withAString:) withObject: mystring]; 在MyClass.m但我得到一个错误类似于*终止应用程序由于未捕获exception'NSInvalidArgumentException',原因:'* – [myClass myTest:withAtring:]:无法识别的select发送到实例0xe421f0' 我尝试了一个更简单的情况下,select器没有任何参数,打印到控制台的string,工作得很好。 代码有什么问题,我该如何解决? 谢谢。
我们有一个WPF应用程序,其中的一部分可能在运行时抛出exception。 我想在全球范围内捕捉任何未处理的exception并将其logging下来,否则继续执行程序,就好像什么也没发生一样(有点像VB的On Error Resume Next )。 这在C#中可能吗? 如果是这样的话,我需要把exception处理代码放在哪里? 目前我看不到任何单一的地方,我可以包装一个try / catch ,并捕获所有可能发生的exception。 即使这样,我也不会因为这个问题而放弃任何已经被处决的事情。 还是我在这里考虑可怕的错误方向? ETA:因为很多人指出:应用不是用来控制核电站的。 如果它崩溃,这不是什么大不了的事情,但大多数与UI相关的随机exception在它将被使用的上下文中是令人讨厌的。 那里有(也可能还有)其中一些,因为它使用插件架构,可能会被其他人(也就是在这种情况下的学生;所以没有经验丰富的开发人员能够编写完全无差错的代码)进行扩展。 至于被捕获的exception:我将它们logging到日志文件中,包括完整的堆栈跟踪。 那是这个练习的重点。 只是为了对付那些把我的比喻成VB的OERN字面的人。 我知道,盲目地忽略某些类别的错误是危险的,可能会破坏我的应用程序实例。 如前所述,这个程序对任何人都不是任务关键的。 没有一个正确的头脑会把人类文明的生存下去。 这只是testing某些devise方法的一个小工具。 软件工程。 对于应用程序的直接使用,在例外情况下可能不会发生很多事情: 没有exception处理 – 错误对话框和应用程序退出。 实验必须重复,尽pipe可能与另一个主题。 没有错误logging,这是不幸的。 一般exception处理 – 良性错误被困,没有造成伤害。 这应该是从我们在开发过程中看到的所有错误判断的常见情况。 忽视这种错误不应该有直接的后果。 核心数据结构经过了充分的testing,可以轻松实现。 一般的exception处理 – 严重的错误被困,可能会在稍后崩溃。 这可能很less发生。 到目前为止,我们从未见过。 无论如何这个错误是logging的,崩溃可能是不可避免的。 所以这在概念上类似于第一种情况。 除了我们有一个堆栈跟踪。 在大多数情况下,用户甚至不会注意到。 至于程序产生的实验数据:最严重的错误只会导致没有数据被logging。 微妙的变化改变了实验的结果,所以很less发生。 即使在这种情况下,如果结果看起来可疑,logging的错误; 如果它是一个总exception值,仍然可以丢弃该数据点。 总结一下:是的,我认为自己仍然至less有一部分是理智的,我不认为全局的exception处理程序会导致程序运行必然是完全邪恶的。 如前所述,这样的决定可能是有效的,这取决于应用程序。 在这种情况下,它被判断为一个有效的决定,而不是完全和彻底的废话。 对于任何其他应用程序,这个决定可能看起来不同 但是请不要指责我或者其他从事这个项目的人有可能因为我们忽略了错误而炸毁世界。 […]
我怎么能复制一个string(例如“你好”)在C#中的系统剪贴板,所以下一次我按CTRL + V我会得到“你好”?
在几个C ++示例中,我看到了size_ttypes的使用,我将使用一个简单的int。 有什么区别,为什么size_t应该更好?
我正在通过命令行构build一个项目,而不是在Visual Studio 2013中。请注意,我已经将项目从Visual Studio 2012升级到了2013.该项目在IDE中生成良好。 另外,我完全卸载VS2012,重新启动,并安装VS2013。 我拥有的唯一版本的Visual Studio是2013 Ultimate。 ValidateProjects: 39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 39>Done Building Project "path_to_project.csproj" (Clean target(s)) — FAILED. 这里有两条问题: <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import […]
你对不同的C / C ++编译器推荐什么编译器警告级别? 海湾合作委员会和G + +会让你逃脱了很多在默认的水平。 我觉得对我来说最好的警告级别是“墙”。 而且我总是尝试删除修复它生成的警告的代码。 (甚至愚蠢的使用括号的逻辑优先规则或说我真的是指“if(x = y)”) 对于不同的编译器,你最喜欢的级别是什么?例如Sun CC,aCC(HPUX?),Visual Studio,intel? 编辑: 我只想指出,我不使用gcc / g ++中的“-Werror”(但是我明白它是实用的),因为我使用: #警告“这是对自己的一个说明” 在我的代码中的一些地方。 所有编译器都理解#warningmacros吗?
我正在寻找一个好的SIP库,用C#编写,或者提供一个C#包装。 不一定需要免费。 有没有人用过什么好东西? 为了澄清,我正在谈论VoIP协议SIP。 我真的在寻找更多的谷歌search这一个。 我想有人回来,说:“我们用______,而且效果很好。” 为了进一步澄清,我正在寻找一个库,可以帮助我实现一个SIP代理服务器,而不必手动构buildSIP数据包。 我不寻找星号,freeswitch或任何其他pbx软件。 我期待在C#中创build一个服务,它将等待SIP数据包并对它们作出响应,我希望能够处理大部分细节的库。
当C#中的早/晚绑定发生时,我试图让我的头脑发生变化。 非虚方法总是早绑定的。 虚拟方法总是迟到:编译器插入额外的代码来parsing在执行时绑定的实际方法,并检查types安全性。 所以亚型多态使用后期绑定。 使用reflection调用方法是后期绑定的一个例子。 我们编写代码来实现这一点,而不是编译器。 (例如调用COM组件。) VB.NET在Option Strictclosures时支持隐式后期绑定。 当一个对象被赋值给一个被声明为Objecttypes的variables时,这个对象是延迟绑定的。 VB编译器插入代码以在执行时绑定到正确的方法,并捕获无效的调用。 C#不支持此function。 我正朝着正确的方向走吗? 那么调用委托并通过接口引用调用方法呢? 这是早期还是晚期的约束?
我很好奇如何std:next_permutation被实现,所以我提取了gnu libstdc++ 4.7版本,并消毒标识符和格式,以产生以下演示… #include <vector> #include <iostream> #include <algorithm> using namespace std; template<typename It> bool next_permutation(It begin, It end) { if (begin == end) return false; It i = begin; ++i; if (i == end) return false; i = end; –i; while (true) { It j = i; –i; if (*i < *j) { It […]
我知道有使用RTTI的资源,但它有多大? 我所看到的任何地方都只是说“RTTI很昂贵”,但是他们都没有提供任何基准或定量数据来调节内存,处理器时间或速度。 那么,RTTI有多贵? 我可能在一个只有4MB内存的embedded式系统上使用它,所以每一个位都是重要的。 编辑: 根据S.罗特的答案 ,如果我包括我实际上在做什么会更好。 我正在使用一个类来传递不同长度的数据,并且可以执行不同的操作 ,所以使用虚拟函数很难做到这一点。 似乎使用一些dynamic_cast可以解决这个问题,允许不同的派生类通过不同的级别,但仍然允许他们完全不同的行为。 从我的理解, dynamic_cast使用RTTI,所以我想知道在一个有限的系统上使用是多么可行。