在JavaScript中:
encodeURIComponent("©?") == "%C2%A9%E2%88%9A"
Run Code Online (Sandbox Code Playgroud)
是否有C#应用程序的等价物?对于我使用的转义HTML字符:
txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",
m => @"&#" + ((int)m.Value[0]).ToString() + ";");
Run Code Online (Sandbox Code Playgroud)
但我不确定如何将匹配转换为JS使用的正确十六进制格式.例如这段代码:
txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",
m => @"%" + String.Format("{0:x}", ((int)m.Value[0])));
Run Code Online (Sandbox Code Playgroud)
返回" %a9%221a"for "©?"而不是"%C2%A9%E2%88%9A".看起来我需要将字符串拆分为字节或其他东西.
编辑:这是一个Windows应用程序中,唯一可用的项目System.Web有:AspNetHostingPermission,AspNetHostingPermissionAttribute,和AspNetHostingPermissionLevel.
我经常发现自己编写的"实用程序"类可以在整个项目中重复使用.
例如,假设我有一个"地址簿"视图.我可能想使用我的地址簿来选择向谁发送电子邮件,或者可能是谁被添加到会议请求中.
我开发了这个视图控制器,因此它可以被电子邮件控制器和会议控制器使用,具有某种回调机制,让调用者知道用户已完成从地址簿中选择某人,或者他们已取消.
在这种情况下,似乎基本上有四种(合理的)方法;
在AddressBookController上创建"AddressBookDelegate"协议和相应的委托属性.然后使用协议中定义的消息来传达结果(类似于UIActionSheetDelegate).
在AddressBookController上创建一个"非正式""AddressBookDelegate"协议和相应的委托属性,但委托属性的类型将是"id",并将在运行时使用"respondsToSelector:"检查委托是否实现了我们的方法要求(似乎大多数框架的东西已经开始这样).
传递AddressBookController一个代表委托的id,以及两个SEL,它们指定当用户选择用户或取消请求时要调用的方法.我看到的好处是; 假设一个控制器支持同时发送电子邮件和设置会议(我知道在这个例子中看起来像是糟糕的设计...但是可以想象一个更通用的情况,这对于实用程序类来说这似乎是完全合理的) - 在这种情况下你可以传递AddressBookController不同的SEL,具体取决于您是将用户添加到电子邮件,还是将用户添加到会议......对iVar的巨大改进表明控制器的"状态".
传递AddressBookController两个块; 一个在用户从地址簿中选择某人时运行,另一个在用户取消请求时运行.
这些块对我来说非常有用,而且更加优雅,我发现自己几乎不知道何时不使用它们.
我希望StackOverflow社区中更有经验的成员比我能帮助他们对这个主题有所了解.
假设对象A有一个属性:
@property (nonatomic, strong) Foo * bar;
Run Code Online (Sandbox Code Playgroud)
在实现中合成为:
@synthesize bar = _bar;
Run Code Online (Sandbox Code Playgroud)
对象B操纵a Foo **,如本示例中对象A的调用:
Foo * temp = self.bar;
[objB doSomething:&temp];
self.bar = temp;
Run Code Online (Sandbox Code Playgroud)
doSomething:方法的正确声明是什么?此外,假设在我有机会设置属性之前可以释放对象Bbar(从而获取指向的实例的所有权temp) - 我如何告诉ARC切换拥有的引用?换句话说,如果我想让以下示例代码段起作用,我将如何处理ARC问题?
Foo * temp = self.bar; // Give it a reference to some current value
[objB doSomething:&temp]; // Let it modify the reference
self.bar = nil; // Basically release whatever we have
_bar = temp; // Since we're …Run Code Online (Sandbox Code Playgroud) 假设我有许多C结构,我想要一组特定的函数来操作.
我想知道以下是否是合法的方法:
typedef struct Base {
int exampleMember;
// ...
} Base;
typedef struct Foo {
Base base;
// ...
} Foo;
typedef struct Bar {
Base base;
// ...
} Bar;
void MethodOperatesOnBase(void *);
void MethodOperatesOnBase(void * obj)
{
Base * base = obj;
base->exampleMember++;
}
Run Code Online (Sandbox Code Playgroud)
在示例中,您将注意到两个结构Foo并Bar以Base成员开头.
而且,在MethodOperatesOnBase那里,我将void *参数转换为Base *.
我想传递指针Bar和指向Foo此方法的指针,并依赖结构的第一个成员作为Base结构.
这是可以接受的,还是有一些(可能是编译器特定的)问题需要注意?(比如某种类型的打包/填充方案会改变结构的第一个成员的位置?)
之前已经问过这个问题:AlertDialog自定义标题有黑色边框
但没有得到满意的答复 - 并且缺少一些信息.
我正在尝试在没有标题的情况下在Android中创建自定义对话框,并且底部没有任何按钮.
但是,生成的对话框在视图的顶部和底部有黑色"边框"/"间距"/某些内容.
从文档:
使用基本Dialog类创建的对话框必须具有标题.如果不调用setTitle(),则用于标题的空间仍为空,但仍然可见.如果您根本不需要标题,则应使用AlertDialog类创建自定义对话框.但是,因为使用AlertDialog.Builder类创建的AlertDialog最简单,所以您无权访问上面使用的setContentView(int)方法.相反,您必须使用setView(View).此方法接受View对象,因此您需要从XML中扩展布局的根View对象.
那就是我做的:
Welcome.java
public class Welcome extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.welcomedialog, (ViewGroup)findViewById(R.id.layout_root));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
builder.create().show();
}
}
Run Code Online (Sandbox Code Playgroud)
welcomedialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/texturebg"
android:id="@+id/layout_root"
android:orientation="vertical"
android:padding="40px">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
注:我已经尝试使用FrameLayout为根ViewGroup,而不是LinearLayout为每一个建议,我发现某处-但这并没有帮助.
结果

public class Welcome extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
LayoutInflater inflater …Run Code Online (Sandbox Code Playgroud) 我有一个位数组,表示"瓷砖"的二维"地图".此图像提供了位数组中位的图形示例:

我需要确定数组中存在多少个连续的"区域"位.在上面的例子中,有两个这样的连续"区域",如下所示:

瓷砖必须直接位于瓷砖的N,S,E或W上才能被认为是"连续的".对角线触摸的瓷砖不计算在内.
因为这些位数组可能变得相对较大(大小为几MB),所以我故意避免在我的算法中使用任何类型的递归.
伪代码如下:
LET S BE SOURCE DATA ARRAY
LET C BE ARRAY OF IDENTICAL LENGTH TO SOURCE DATA USED TO TRACK "CHECKED" BITS
FOREACH INDEX I IN S
IF C[I] THEN
CONTINUE
ELSE
SET C[I]
IF S[I] THEN
EXTRACT_AREA(S, C, I)
EXTRACT_AREA(S, C, I):
LET T BE TARGET DATA ARRAY FOR STORING BITS OF THE AREA WE'RE EXTRACTING
LET F BE STACK OF TILES TO SEARCH NEXT
PUSH I UNTO F
SET T[I]
WHILE F …Run Code Online (Sandbox Code Playgroud) 我有一个makefile,它构建了一个由许多文件组成的项目,这些文件都需要构建.
为了使事情变得更复杂,我在每次调用gcc时都有一些包含的目录(因此每次调用gcc在命令行上看起来很长).
我想抑制除错误和警告之外的所有输出(这样我在make运行时就可以看到它们!)
有没有办法做到这一点?
我在Android.mk构建文件中使用Make的wildcard功能时遇到问题.
我的其他makefile使用类似这样的行来指定"此文件夹中的所有.c文件":
CFILES := $(wildcard *.c)
在我的Android.mk文件中,我试过这个:
LOCAL_SRC_FILES := $(wildcard *.c)
但是,这与不包括任何文件具有相同的效果.
如果我手动包含文件,那么构建就像我期望的那样工作.
我想知道在评估此语句时,当前工作目录是否不是我的项目路径?如果是这样,我可以使用$(call my-dir)和通配符函数的组合来获取我想要的列表吗?
我在视觉上使用jQuery"折叠"一些DOM元素(通过将它们的宽度缩小到0px并逐渐淡出它们),如下所示:
$(".slideoutmenu").animate({ width: 0, opacity: 0 }, function() { $(this).hide(); });
Run Code Online (Sandbox Code Playgroud)
这些元素的宽度可以变化,但是文档通过CSS正确布局而不设置特定宽度.
通常,要重新显示这些元素,我可以简单地执行以下操作:
$(".slideoutmenu").stop().show().css({ width: '', opacity: 1 });
Run Code Online (Sandbox Code Playgroud)
但是,我想反向动画这些元素(淡入和展开).
通常我会用类似的东西来做这件事:
$(this).children(".slideoutmenu").stop().show().animate({ width: 250, opacity: 1 });
Run Code Online (Sandbox Code Playgroud)
所以这是一个明显的尝试:
$(this).children(".slideoutmenu").stop().show().animate({ width: "", opacity: 1 });
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
最终,这里的问题是上面例子中固定的"250"数字.这不起作用,因为宽度是可变的.我需要结合在css setter中使用空字符串的结果和"animate"......但我无法弄清楚如何做到这一点.我试过用'undefined','null','-1',''替换"250",我搜索了谷歌......无济于事.
我理解我可能会对用户隐藏的元素做一些测量技巧 - 但我无法想象这不是一个相当普遍的问题 - 所以我希望有一种"标准"的方法来做到这一点,或者说它是建立在一些如何,我只是不知道它.
谢谢阅读.
跟进:
基于迈克尔的善意回应,我整理了一个小而快的脏插件,这样我就能完成内联.(也许有人可以扩展插件的想法并使其更好)
这是插件:
(function( $ ){
$.fn.cacheCss = function( prop ) {
return this.each(function() {
var $this = $(this);
if (prop instanceof Array)
{
for (var pname in prop)
{
if ($this.data('cssCache-' + prop[pname]) != undefined)
continue; …Run Code Online (Sandbox Code Playgroud) 在简单查询中,GROUP BY字段的顺序与最终结果没有区别(忽略开发人员的易读性).
EG:SELECT COUNT(*) FROM People GROUP BY Age, Gender将产生与GROUP BY字段被翻转相同的结果.
一般来说,在什么条件下,GROUP BY字段的这种明显的可交换属性会崩溃?
我在这里寻找一般规则(EG:"任何包含依赖于其中一个分组字段的子表达式的表达式")
我很难想出一个关于排序重要的例子 - 但我的直觉告诉我它在某些情况下确实如此.
android ×2
c ×2
makefile ×2
objective-c ×2
.net ×1
algorithm ×1
android-ndk ×1
c# ×1
css ×1
database ×1
encoding ×1
javascript ×1
jquery ×1
sql ×1
windows ×1