Adler-32校验和算法总和模数为65521.我知道65521是最大的素数,适合16位,但为什么在这个算法中使用素数很重要?
(我确信一旦有人告诉我,答案就会显而易见,但我脑中的数论理论部分却无法正常工作.即使没有校验和算法方面的专业知识,一个聪明的人也会阅读http://en.wikipedia. org/wiki/Fletcher%27s_checksum可能会向我解释.)
我正在使用uncrustify 0.52.当我针对Objective-C文件运行它时,它想要转换方法调用,如下所示:
[NSApp beginSheet:startTimerDialog
modalForWindow:nil
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)
对此:
[NSApp beginSheet:startTimerDialog
modalForWindow:nil
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)
我更喜欢第一个版本,冒号对齐.在uncrustify配置文件中是否有一个选项可以支持我想要的内容,或者只是不支持对齐的冒号?
如果unrustify不能对齐冒号,有没有办法防止它排除我自己对齐的冒号?
更新:
mmc注意到此功能在Build 1581版本的Uncrustify svn存储库中可用.它处于unrustify 0.54.align_oc_msg_colon = true在配置文件中设置以启用它.
进一步更新
对于将来找到此答案的人:.cfg文件中的首选项名称已更改.现在align_oc_msg_colon_span= 1要获得上述行为.现在还有一个align_oc_decl_colon = true将为多行声明做名称的事情.
我有一个游戏理念,需要对流体在各种物体周围流动的半真实模拟.想象一下在不规则表面上的水银池,它在各个方向上倾斜.
这适用于游戏,因此不需要100%的物理真实感.最重要的是,计算可以在具有iPhone功能的设备上实时完成.
我认为某种细胞自动机或粒子系统是可行的方法,但我不知道从哪里开始.
有什么建议?
在我的Windows框中,我尝试使用该命令创建Subversion补丁svn diff > my_patch.diff.生成的文件使用UTF-16编码,而不是UTF-8或ASCII编码,所以当我尝试使用patch(来自GnuWin32)应用补丁时,它不起作用.
我可以通过在记事本中打开它并将其保存为所需的格式,将补丁文件转换为UTF8,然后在patch此之后处理它.但是,有没有办法svn diff在Windows上生成UTF8?
更新:正如我的回答所示,事实证明问题与Subversion无关diff,或者patch.PowerShell是非常有用的将输出转换为Unicode.我将问题保留原样,以便有类似问题的人可能偶然发现它.
是否有命令检查Mac OS X上已安装的Qt的版本.我的Mac OS X版本是10.6.7.
Eidt:更新状态10/28/2011
运行/ usr/sbin/system_profiler SPFrameworksDataType时,QTkit的版本是7.6.6.
qglobal.h中宏QT_VERSION_STR的值为"4.7.2".
我很困惑为什么两个版本字符串不同?显然,版本字符串"4.7.2"是我想要的.
谢谢,杰弗里
我有一个使用UISearchBar和的iPhone应用程序UISearchDisplayController.搜索栏有三个范围按钮.我希望键盘在选择特定范围按钮时成为数字键盘,但在选择任何其他范围按钮时成为默认键盘.
我已经实现了UISearchBarDelegate selectedScopeButtonIndexDidChange:selectedScope如下方法:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
switch (selectedScope) {
case DeviceIDScopeIndex:
searchBar.keyboardType = UIKeyboardTypeNumberPad;
break;
default:
searchBar.keyboardType = UIKeyboardTypeDefault;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道该方法被调用,并且当选择了相关按钮时会触发正确的情况.但屏幕键盘不会改变,除非我点击取消按钮隐藏键盘,然后再次点击搜索字段再次调出键盘.
有没有办法让键盘在屏幕上改变自己,或以编程方式隐藏它然后重新显示它?
在编译iPad时是否有一个特定的Xcode编译器标志?
我想有条件地编译iPad与iPhone/iPod Touch代码,例如:
#ifdef TARGET_IPAD
code for iPad
#else
code for iPhone
#endif
Run Code Online (Sandbox Code Playgroud)
我知道在TargetConditionals.h中已经有TARGET_OS_IPHONE和TARGET_CPU_ARM,但是任何容易且专门针对iPad的东西?
-Rei
我有一个iOS应用程序需要处理来自Web服务的响应.响应是包含序列化JSON对象的序列化JSON字符串,如下所示:
"{ \"name\" : \"Bob\", \"age\" : 21 }"
Run Code Online (Sandbox Code Playgroud)
请注意,此响应是JSON 字符串,而不是JSON对象.我需要做的是反序列化字符串,以便我得到这个:
{ "name" : "Bob", "age" : 21 }
Run Code Online (Sandbox Code Playgroud)
然后我可以用+[NSJSONSerialization JSONObjectWithData:options:error:]它将其反序列化为一个NSDictionary.
但是,我该如何做到第一步呢?也就是说,我如何"unescape"字符串,以便我有一个序列化的JSON对象? +[NSJSONSerialization JSONObjectWithData:options:error:]仅当顶级对象是数组或字典时才有效; 它不适用于字符串.
我最终编写了自己的JSON字符串解析器,我希望它符合RFC 4627的2.5节.但我怀疑我忽略了一些简单的方法来使用NSJSONSerialization或其他一些可用的方法.
我不使用Eclipse作为IDE,并且没有兴趣这样做.但是,我喜欢它的源代码级调试.
有没有什么方法可以用它来调试C++ Linux应用程序而无需通过创建项目的仪式?(实际上,我可以像使用gdb的前端一样使用它吗?)
如果没有,我需要遵循什么步骤来创建一个项目,我可以用它来调试使用Makefile或其他工具(SCons,CMake等)构建的现有C++程序.我不想在Eclipse中"开发"; 我需要做的就是调试.
我有一些遗留代码,而不是虚函数,使用kind字段进行动态调度.它看起来像这样:
// Base struct shared by all subtypes
// Plain-old data; can't use virtual functions
struct POD
{
int kind;
int GetFoo();
int GetBar();
int GetBaz();
int GetXyzzy();
};
enum Kind { Kind_Derived1, Kind_Derived2, Kind_Derived3 /* , ... */ };
struct Derived1: POD
{
Derived1(): kind(Kind_Derived1) {}
int GetFoo();
int GetBar();
int GetBaz();
int GetXyzzy();
// ... plus other type-specific data and function members ...
};
struct Derived2: POD
{
Derived2(): kind(Kind_Derived2) {}
int GetFoo();
int GetBar();
int …Run Code Online (Sandbox Code Playgroud) algorithm ×2
c++ ×2
adler32 ×1
checksum ×1
cocoa ×1
cocoa-touch ×1
debugging ×1
diff ×1
eclipse ×1
eclipse-cdt ×1
ios ×1
ipad ×1
iphone ×1
json ×1
macos ×1
math ×1
objective-c ×1
patch ×1
powershell ×1
qt ×1
refactoring ×1
simulation ×1
svn ×1
uisearchbar ×1
uncrustify ×1