我正在浏览Josh Smith的MVVM示例,我注意到他定义了一个名为CommandViewModel的基本视图模型,并通过他的演示应用程序查看,我只是看不到它的重点.
我知道,我在挑剔.但是当在仅包含布尔值(因此只有两个状态)的结构上实现IConvertible接口时,建议的返回值是IConvertible.GetTypeCode()多少?该结构是可隐式转换的,与布尔值相当,除了字符串和XML表示之外几乎所有方面,它实际上都是一个布尔值.
如果我回来的话,我觉得我对框架撒谎,TypeCode.Boolean但TypeCode.Object似乎不必要地含糊不清.在您自己的结构中实现此方法有任何实际后果吗?
我正在尝试模拟一个具有以下签名等效方法:
- (NSDictionary *) uploadValues:(BOOL)doSomething error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个小字典,以便我的测试可以确保代码正确使用字典.但是,无论我做什么,OCMock总是从方法中返回nil,无论我如何将其存根.错误在我正在测试的代码中以nil开头,这些是我尝试将其存根的不同方式:
NSError * error = nil;
[[[mock stub] andReturn:someDict] uploadValues:YES error:&error];
[[[mock stub] andReturn:someDict] uploadValues:YES error:nil];
[[[mock stub] andReturn:someDict] uploadValues:YES error:[OCMArg any]];
Run Code Online (Sandbox Code Playgroud)
并且它们都不起作用.OCMock是否支持处理作为存根消息参数,如果是,那么正确的方法是什么?
我有一个列组INTEGER NULL的表.它有价值
5
7
<NULL>
如果我从table_name中选择sum(groups),
我会得到12.当被求和的列为空时,我怎么能得到null.
我知道这个问题的一个变体在尝试附加文件从SD卡到电子邮件之前被问到 但是提供的解决方案,即重启似乎不适合我.我看到很多小组发帖都支持这个问题.我只能假设链接到问题的OP进行了一些其他更改,可能是允许其代码工作的清单.
我看到的行为是电子邮件意图处理来自SD卡的jpeg附件,但处理它作为0长度文件,在发送时被丢弃.我已经尝试过setType作为jpeg/image和image/jpeg,因为我看到它表达了两种方式.
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("jpeg/image");
sendIntent.putExtra(Intent.EXTRA_EMAIL, "me@gmail.com");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, R.string.email_subjectStart +
mWhatYouSpotted.getSelectedItem().toString() +
R.string.email_subjectEnd);
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ sPhotoFileName));
sendIntent.putExtra(Intent.EXTRA_TEXT, sEmailBody);
startActivity(Intent.createChooser(sendIntent, "Email:"));
Run Code Online (Sandbox Code Playgroud)
这是我上次测试时得到的adb logcat:
V/DumbDumpersMain(3972):sPhotoUri = file://sdcard/DumbDumpers/DumbDumper.jpg I/ActivityManager(56):开始活动:Intent {action = android.intent.action.CHOOSER comp = {android/com.android. internal.app.ChooserActivity}(有额外的)} I/ActivityManager(56):开始活动:Intent {action = android.intent.action.SEND type = jpeg/image flags = 0x3000000 comp = {com.google.android.gm /com.google.android.gm.ComposeActivityGmail}(有附加内容)} I/ActivityManager(56):开始活动:Intent {action = android.intent.action.SEND type = jpeg/image flags = 0x2800000 comp = {com. google.android.gm/com.google.android.gm.ComposeActivity}(有附加内容)} D/gmail-ls(120):MailProvider.query:content://gmail-ls/labels/me@gmail.com( null,null)D/Gmail(2507):URI FOUND:file://sdcard/DumbDumpers/DumbDumper.jpg
我一直在用这个问题敲打一个星期超过一个星期,但仍无法确定是什么问题.有任何想法吗?
TL; DR:向Array.prototype和Function.prototype添加任何非内置函数将导致IE8本机JSON解析器在解析包含数组的任何JSON时获得堆栈溢出,但仅当您还传递了reviver函数时进入JSON.parse().
这开始是一个问题,但我回答了我自己的原始问题,所以现在我会问:任何人都可以想到这个IE8错误的解决办法,不涉及删除修改Array.prototype和Function的所有JS库.原型?
原始问题:
我有大约13k的JSON数据要解析.数据的结构是具有单个值的对象,该值是嵌套数组.
{ 'value':[[ stuff ], [ more stuff], [ etc ]] }
Run Code Online (Sandbox Code Playgroud)
我正在使用json2.js,它在可用时遵循浏览器本机JSON.parse.我正在将一个reviver函数传递给JSON.parse来正确处理日期.当IE8处于IE7仿真模式(导致它使用基于脚本的json2.js解析器)时,一切正常.当IE8处于IE8模式(导致它使用浏览器本机JSON解析器)时,它会出现"堆栈空间不足"错误.当然,Firefox和Chrome可以与浏览器原生的JSON解析器一起使用.
我把它缩小到这个:如果我将一个do-nothing reviver函数传递给JSON.parse,那么IE8本机解析器会获得堆栈溢出.如果我传入没有reviver函数,IE8本机解析器工作正常,除了它不能正确解析日期.
// no error:
JSON.parse(stuff);
// "out of stack space" error:
JSON.parse(stuff, function(key, val) { return val; });
Run Code Online (Sandbox Code Playgroud)
我将使用我的JSON数据,看看数据的更少或更少的嵌套可以避免错误,但我想知道是否有人之前已经看过这个,或者有任何其他建议的解决方法.IE8已经足够慢了,因为这个bug而禁用该浏览器的原生JSON将是一种耻辱.
更新:在其他情况下,使用不同的JSON数据,当我使用具有reviver功能的IE8本机解析器时,我收到javascript错误"$ lineinfo is undefined",如果我不使用reviver函数则没有错误.字符串"$ lineinfo"不会出现在我的任何源代码中的任何位置.
更新2:实际上,这个问题似乎是由Prototype 1.6.0.3引起的.在我添加到Prototype库之前,我无法在隔离的测试页面中重现它.
更新3:
prototype.js打破IE8原生JSON解析器的原因是:向Array.prototype和Function.prototype添加任何非内置函数将导致IE8本机JSON解析器在解析包含数组的任何JSON时获得堆栈溢出,但只有当你还将一个reviver函数传递给JSON.parse()时.
Prototype库为Array.prototype和Function.prototype添加了函数,但这同样适用于执行相同操作的任何其他库.IE JSON解析器中的这个错误由Prototype和Ext公开,但不是jQuery.我还没有测试过任何其他框架.
这是一个完全独立的问题再现.如果删除Function.prototype行或Array.prototype行,或从JSON字符串中删除该数组,则不会出现"堆栈空间不足"错误.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
Function.prototype.test1 = function() { };
Array.prototype.test2 = function() { };
window.onload = function()
{
alert(JSON.parse('{ "foo": …Run Code Online (Sandbox Code Playgroud) 我有一些代码,我正在尝试获取当前会话用户令牌:
#include <Wtsapi32.h>
DWORD activeSessionId = WTSGetActiveConsoleSessionId();
HANDLE currentToken;
BOOL queryRet = WTSQueryUserToken(activeSessionId, ¤tToken);
if (!queryRet) {
DWORD err = GetLastError();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误的价值是1314.
到目前为止没有运气,试图授予当前进程SE_TCB_NAME - 但仍然从WTSQueryUserToken(1314)获得相同的错误.
HANDLE process = GetCurrentProcess();
HANDLE processToken;
BOOL openTokenRet = OpenProcessToken(
process, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &processToken);
if (!openTokenRet)
{
DWORD err = GetLastError();
return 0;
}
TOKEN_PRIVILEGES tokenPrivs;
BOOL lookupRet = LookupPrivilegeValue(
NULL, SE_TCB_NAME, &tokenPrivs.Privileges[0].Luid);
if (!lookupRet)
{
DWORD err = GetLastError();
return 0;
}
tokenPrivs.PrivilegeCount = 1;
tokenPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
BOOL …Run Code Online (Sandbox Code Playgroud) 我希望使用My.Computer.FileSystem.WriteAllBytes等将由固定长度字符串组成的结构写入文件.
我使用的VB6项目具有固定长度的字符串,我已将其转换为VB.Net.
Structure Record
<VBFixedString(22),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=22)> Public tim() As Char
<VBFixedString(130),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=130)> Public des() As Char
<VBFixedString(2),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=2)> Public crlf() As Char
End Structure
Run Code Online (Sandbox Code Playgroud)
在C#中编组仍然是新手,但是我如何将这个结构转换为一个字节数组来写入文件.是否有一些编组技巧或我是否必须编写自定义方法?
我有这个循环:
foreach (DirectoryInfo dir in downloadedMessageInfo.GetDirectories())
{
if (dir.Attributes != FileAttributes.Hidden)
{
dir.Delete(true);
}
}
Run Code Online (Sandbox Code Playgroud)
如何正确跳过所有隐藏目录?
我将编写自己的自定义控件,它与UIButton非常不同.这是多么不同,我决定从头开始编写它.所以我的子类都是UIControl.
当我的控制被内部触及时,我想以目标动作的方式发出消息.该类的用户可以实例化它,然后为此事件添加一些目标和操作.
即想象我会在内部调用一个方法-fireTargetsForTouchUpEvent.我怎样才能在班上维护这个目标 - 行动机制?我是否必须将所有目标和操作添加到我自己的数组中,然后在for循环中调用目标对象上的选择器(操作)?或者有更聪明的方法吗?
我想提供一些方法来为某些事件添加目标和动作,比如触摸事件(我在发生这种情况时通过调用内部方法手动提升).任何的想法?
.net ×2
android ×1
bytearray ×1
c# ×1
cocoa-touch ×1
database ×1
email ×1
handle ×1
iphone ×1
json ×1
marshalling ×1
mocking ×1
mvvm ×1
mysql ×1
objective-c ×1
ocmock ×1
postgresql ×1
uikit ×1
unit-testing ×1
vb.net ×1
winapi ×1
wpf ×1
wtsapi32 ×1