我正在尝试化石作为我的新VCS,因为我是一个从事小型项目的独立开发人员.我开始测试化石,但我遇到了一个(可能是主要的新手)问题.如何推送或拉到另一个目录(这在Hg上很容易).Fossil pull或push命令需要URL而不是目录.当我在一个目录中启动服务器并尝试从另一个目录推送时,我收到"服务器循环"错误消息.有任何想法吗?
我(非常)是一位经验丰富的程序员,但对Ruby和Ruby on Rails是全新的.
RoR看起来非常适合快速工作,特别是CRUD操作的自动屏幕生成.
它真的能让你快速提高工作效率.
当我必须完成我的申请时,问题是最后20%的工作.RoR会议不会妨碍我吗?因为并非所有用户都可以使用每个数据库表,并且并非所有用户都可以编辑所有列和/或所有行,并且视图必须适应我的站点的外观和感觉等.
我知道RoR已成功应用于现场,但是在第一阶段烧毁后,你在RoR中获得足够的速度以逃避重力的方式.
如果在浏览器中禁用了javascript的html选择器更改,我怎么能(如果有的话)加载新页面.
可以吗?
这个问题是关于vararg函数,以及省略号之前的最后一个命名参数:
void f(Type paramN, ...) {
va_list ap;
va_start(ap, paramN);
va_end(ap);
}
Run Code Online (Sandbox Code Playgroud)
我正在阅读C标准,并发现va_start宏的以下限制:
参数parmN是函数定义中变量参数列表中最右边参数的标识符(恰好在......之前).如果参数parmN使用寄存器存储类,函数或数组类型声明,或者使用与应用默认参数提升后生成的类型不兼容的类型,则行为未定义.
我想知道为什么以下代码的行为未定义
void f(int paramN[], ...) {
va_list ap;
va_start(ap, paramN);
va_end(ap);
}
Run Code Online (Sandbox Code Playgroud)
并且未定义以下内容
void f(int *paramN, ...) {
va_list ap;
va_start(ap, paramN);
va_end(ap);
}
Run Code Online (Sandbox Code Playgroud)
宏可以通过纯C代码实现.但纯C代码无法确定是否paramN声明为数组或指针.在这两种情况下,参数的类型都被调整为指针.功能类型参数也是如此.
我想知道:这个限制的理由是什么?在内部进行这些参数调整时,某些编译器是否存在实现此问题的问题?(C++也说明了相同的未定义行为 - 所以我的问题是关于C++的问题).
在javascript中处理本地化字符串中的参数有什么好方法?我使用的格式与java的MessageFormat类相同,例如:
There are {0} apples in basket ID {1}.
凡{0}将与第一个参数,来代替{1}与第二.
这是我想在JS中使用的调用(即我想实现origStr):
var str = replaceParams(origStr, [5, 'AAA']);
我猜最好的策略是使用正则表达式.如果是这样,请提供良好的正则表达.但我很乐意听到其他任何选择.
创建指针对象指针的正确方法是什么?例如,
int **foo;
foo = new int[4][4];
Run Code Online (Sandbox Code Playgroud)
然后编译器给我一个错误,说"无法从int(*)[4]转换为int**.
谢谢.
我正在寻找一个免费的测试smptp服务器,它可以将电子邮件保存到我的开发测试的文件中.由于我的开发环境是Windows,我更喜欢测试电子邮件服务器在Windows上运行,但我可以考虑安装任何其他基于Linux的替代品.
假设我有两个C#应用程序 - game.exe(XNA,需要支持Xbox 360)和editor.exe(在WinForms中托管的XNA) - 它们共享一个engine.dll可以完成绝大部分工作的程序集.
现在让我们说我想添加一些基于C#的脚本(它不是"脚本",但我会称之为).每个级别都有自己继承自基类的类(我们称之为LevelController).
这些是这些脚本的重要约束:
它们需要是真实的,编译好的C#代码
他们应该需要最少的手动"粘合"工作,如果有的话
它们必须与其他所有内容在同一个AppDomain中运行
对于游戏 - 这非常简单:所有脚本类都可以编译成一个程序集(比如说levels.dll),并且可以根据需要使用反射来实例化各个类.
编辑要困难得多.编辑器能够在编辑器窗口中"玩游戏",然后将所有内容重置回原来的位置(这就是编辑器首先需要了解这些脚本的原因).
我想要实现的基本上是编辑器中的"重新加载脚本"按钮,它将重新编译并加载与正在编辑的级别相关联的脚本类,当用户按下"播放"按钮时,创建最近的实例编译脚本.
其结果将是编辑器中的快速编辑测试工作流程(而不是替代方案 - 保存级别,关闭编辑器,重新编译解决方案,启动编辑器,加载级别,测试).
现在我想我已经找到了实现这个目标的潜在方法 - 这本身就会产生一些问题(如下所示):
.cs将给定级别(或者,如果需要,整个levels.dll项目)所需的文件集合编译为临时的,唯一命名的程序集.那个集会需要参考engine.dll.如何在运行时以这种方式调用编译器?如何让它输出这样的程序集(我可以在内存中执行)吗?
加载新装配.我在同一个进程中加载具有相同名称的类是否重要?(我的印象是名称是由程序集名称限定的?)
现在,正如我所提到的,我无法使用AppDomains.但是,另一方面,我不介意泄漏旧版本的脚本类,因此卸载的能力并不重要.除非是吗?我假设加载可能几百个组件是可行的.
在播放关卡时,实例是从刚加载的特定程序集继承自LevelController的类.这该怎么做?
最后:
这是一种明智的做法吗?它可以做得更好吗?
更新:这些天我使用一种更简单的方法来解决潜在的问题.
我有一个UINavigationController,它被推送到DetailsViewController.在这个DetailsViewController中,我想使用每个UINavigationController附带的工具栏(至少从iPhone OS3.0开始).
因此,在我的DetailsViewController中的viewDidLoad中,我创建了一个UIBarButtonItem,我将它添加到一个数组并将其交给导航控制器:
- (void) viewDidLoad {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *items = [NSArray arrayWithObject: item];
TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *navController = delegate.navigationController;
[navController setToolbarItems: items animated:NO];
[navController setToolbarHidden: NO animated: YES];
}
Run Code Online (Sandbox Code Playgroud)
但是,出于某种原因,当UIToolbar动画到屏幕上时,该项目不会添加到工具栏中.
是否有某种特定的顺序需要使用UIToolbar完成这项工作?
PS:应用程序处于(强制)横向模式,navigationController.view对其进行了旋转变换.这与它有什么关系吗?