我见过几个带有1个按钮的应用程序,看起来像UITabBar突出到框架外面.
如何做这样的事情?我们非常感谢您阅读的代码示例/教程建议.
这是我见过的应用程序中的一张照片.

我已经读过我可以定义一个类static,但我不明白为什么我可能需要这样做.静态类有什么用?我什么时候需要使用它们?我会很感激的例子.
假设我有一个查找城市,州位置的表单.如果用户输入了错误的城市,状态,我希望表单能够根据用户输入检查数据库,并查看输入是否有效.如果不是,我希望用户提示.
因此,表单Validate是我的插件.
$("#form").validate({
rules: {
citystate: {
required: true,
myCustomAjaxSyncronousCheckAgainstDBRule: true
}
submitHandler: function(form) {
if ($("#form").valid()) {
form.submit();
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在说这个表单必须在我的网站的4个不同的地方使用,所以很难重构myCustomAjaxSyncronousCheckAgainsDBRule(伪名称btw)并在我的网站上有4次相同的代码.这就是我在JS文件中创建自定义规则的原因.但有没有办法只能在提交时检查规则.因为如果用户输入无效,它将在每次击键时检查它,这可能非常麻烦.特别是因为我有jQuery.ui.autocomplete运行unjuction.
我偶然发现了一篇内容丰富的文章:http://cnicholson.net/2009/02/stupid-c-tricks-adventures-in-assert/ ,它指出了我当前的调试宏套件中存在的大量问题.
如果您点击链接,则会在文章末尾附近给出宏的最终版本的完整代码.
提出的一般形式是这样的(如果我在转置它时错误,请有人纠正我):
#ifdef DEBUG
#define ASSERT(cond) \
do \
{ \
if (!(cond)) \
{ \
ReportFailure(#cond, __FILE__, __LINE__, 0); \
HALT(); \
} \
} while(0)
#else
#define ASSERT(cond) \
do { (void)sizeof(cond); } while(0)
Run Code Online (Sandbox Code Playgroud)
在考虑使用我所学的内容修改代码时,我注意到该文章的评论中发布了一些有趣的变体:
一个是你不能将这个宏与三元运算符(即cond?ASSERT(x):func())一起使用,并且建议if()用三元运算符和一些括号以及逗号运算符替换它.后来另一位评论者提供了这样的:
#ifdef DEBUG
#define ASSERT(x) ((void)(!(x) && assert_handler(#x, __FILE__, __LINE__) && (HALT(), 1)))
#else
#define ASSERT(x) ((void)sizeof(x))
#endif
Run Code Online (Sandbox Code Playgroud)
&&在这种情况下,我认为使用逻辑并且特别聪明,在我看来,这个版本比使用if甚至三元的版本更灵活?:.更好的是返回值assert_handler可用于确定程序是否应该停止.虽然我不确定它为什么(HALT(), 1)而不仅仅是HALT().
我忽略了第二个版本是否存在任何特殊缺点?它消除了do{ } …
我项目的编译时间很长,我想尽可能减少这个.但是,现在我只是浏览我的项目并试图在纯粹的直觉上删除编译重的东西.
我希望能够在某种程度上剖析我的编译,这将为我提供有用的信息,我可以用它来确定我的编译时间大部分时间.
我已经尝试在Visual Studio中启用"Build Timing",但是这并没有给出比编译器执行的不同任务的时间更多的信息,因为知道大部分时间花在"CL"上并不是很有帮助.
有没有办法在较低级别(例如行或文件时间)分析编译?
一个简单的C#方法,带有一个使用OptionalAttribute声明的可选参数
namespace ClassLibrary11
{
public class Class1
{
public int Foo(int a, int b, [Optional] int c)
{
return a + b + c;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在VS 2010上.按预期obj.Foo(3,4)输出7.但不是在VS 2008或之前,除非使用DefaultParameterValue属性提供某些默认值.因此,Foo(3,4)在VS2008上或之前调用会导致错误:
Object of type 'System.Reflection.Missing' cannot be converted to type 'System.Double'
在VS 2008和VS 2010上,如果使用反射来调用方法Foo,那么如果没有为可选参数提供默认值,则会抛出相同的错误.
ClassLibrary11.Class1 cls = new ClassLibrary11.Class1();
MethodInfo mi = typeof(ClassLibrary11.Class1).GetMethod("Foo");
Object[] objarr = new Object[] {1,2, Missing.Value};
Object res = mi.Invoke(cls, objarr);
Run Code Online (Sandbox Code Playgroud)
所以问题是:
那么VS 2010编译器如何负责将默认值分配给可选参数,但框架4.0不通过反射?
我有这个
int [] abc = new int[30];
Object arr = abc;
Run Code Online (Sandbox Code Playgroud)
我如何施展arr回int[]?即
int [] foo = (int[])arr
Run Code Online (Sandbox Code Playgroud)
另外,如果arr可以指向int[]或者byte[],如何区分它们?
我检查arr.getClass().getName()的回报[I 和arr.getClass().isPrimitive()为false.必须是另一种检测它的方法吗?
谢谢.
PS.我必须在我的数组中使用原始类型.
我有一个类应该为每个成员变量调用一个访问者方法.像这样的东西:
class A{
int a, b, c;
public:
void accept(Visitor &visitor){
visitor.visit(a);
visitor.visit(b);
visitor.visit(c);
}
};
Run Code Online (Sandbox Code Playgroud)
如何void accept() const在没有代码重复的情况下使用相同的代码获取方法?
重复的显而易见的解决方案是添加一个方法:
void accept(Visitor &visitor) const {
visitor.visit(a);
visitor.visit(b);
visitor.visit(c);
}
Run Code Online (Sandbox Code Playgroud)
该方法具有我想要的含义,但我想避免代码重复.拥有这两种方法的原因是能够通过"阅读"访问者读取变量并accept很好地使用该方法const.然后非const accept将可用于"写入/更新"访问者.
我今天开始使用ANTLR,并且我已经创建了一个基本的解析器.
解析后,我最终得到了一棵树.对我来说,似乎这只是String在一组树形结构中放在一起的Tree-nodes.这对我来说不是很有用.我想要一个对象图.
澄清(这是一个例子,而不是我真正的应用程序):因为"5-1+6"我似乎最终得到:
new String("PLUS")
new String("MINUS")
new String("5")
new String("1")
new String("6")
Run Code Online (Sandbox Code Playgroud)
我会发现更有用的东西:
new Plus(
new Minus(
new IntegerLiteral(5),
new IntegerLiteral(1)),
new IntegerLiteral(6))
Run Code Online (Sandbox Code Playgroud)
从第一个表示到另一个表示最方便的方法是什么?在本文中,作者做了类似的事情:
public Expression createExpr(CommonTree ast) {
// ...
switch (ast.getType()) {
case SimpleExpressionParser.INT:
return new IntegerLiteral(ast.getText())
case SimpleExpressionParser.PLUS:
return new Plus(createExpr((CommonTree)ast.getChild(0)), // recurse
createExpr((CommonTree)ast.getChild(1))); // recurse
case SimpleExpressionParser.MINUS:
return new Minus(createExpr((CommonTree)ast.getChild(0)), // recurse
createExpr((CommonTree)ast.getChild(1))); // recurse
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是首选方式吗?!我不能指示ANTLR以某种方式生成这个样板代码(它会是巨大的)吗?
可能相关的问题:
嗨,我有一个switch语句,它在9或更少的情况下工作正常,如下所示
function checkBoxes(obj) {
var indx = obj.id.substring(obj.id.length-1, obj.id.length);
switch ( indx ) {
case '1':
if (document.sportsInfo.Info_1.checked) {
document.sportsInfo.Info_2.disabled = true;
document.sportsInfo.Info_2.checked = false;
document.sportsInfo.Info_3.disabled = true;
document.sportsInfo.Info_3.checked = false;
document.sportsInfo.Info_4.disabled = true;
document.sportsInfo.Info_4.checked = false;
document.sportsInfo.Info_5.disabled = true;
document.sportsInfo.Info_5.checked = false;
document.sportsInfo.Info_6.disabled = true;
document.sportsInfo.Info_6.checked = false;
document.sportsInfo.Info_7.disabled = true;
document.sportsInfo.Info_7.checked = false;
document.sportsInfo.Info_8.disabled = true;
document.sportsInfo.Info_8.checked = false;
document.sportsInfo.Info_9.disabled = true;
document.sportsInfo.Info_9.checked = false;
document.sportsInfo.Info_10.disabled = true;
document.sportsInfo.Info_10.checked = false;
document.sportsInfo.Info_11.disabled = true;
document.sportsInfo.Info_11.checked = false;
document.sportsInfo.Info_12.disabled …Run Code Online (Sandbox Code Playgroud)