我已经使用Visual Studio Express 2012设置了我的项目,添加了一些C#代码,并成功编译/部署到模拟器.在某些时候我决定我想用JSON做一些事情,我发现我应该使用Json.NET框架,它可以作为NuGet包使用.我已使用该命令成功添加了此框架Install-Package Newtonsoft.Json
.
我试图安装两天前MSVC提供的更新,安装失败,让我无法再次打开我的项目.重新安装MSVC没有帮助,所以我最终将Windows恢复到以前的状态.我能够再次打开我的项目,我想重新安装NuGet包(不知道它是安装在项目内部,而不是 MSVC).它在安装时给了我错误,所以我试图从包控制台卸载所有内容.
长话短说:
Get-Package
Install-Package Newtonsoft.Json
再次运行给我错误
无法安装Newtonsoft.Json 5.0.6.您尝试在引用"WindowsPhone,Version = v8.0"的项目中安装此程序包,但该程序包不包含与此框架兼容的程序集
现在我完全迷失了.我不知道如何正确安装包,也不知道如何正确地删除它.我的项目文件坏了吗?我该怎么修呢?
[编辑] 现在它变得更加混乱.我刚刚更新了NuGet包管理器(不是MSVC),并尝试重新安装Json.NET.
Get-Package
在控制台中显示已安装的包
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
Newtonsoft.Json 5.0.6 Json.NET is a popular high-performance JSON framework for .NET
Run Code Online (Sandbox Code Playgroud)尝试使用`Uninstall-Package Newtonsoft.Json"卸载"无法找到"包'Newtonsoft.Json'"
packages
目录中看到"Newtonsoft.Json.5.0.6"子文件夹我应该从头开始创建一个新项目吗?:/
packages.dgml的内容:
<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph GraphDirection="LeftToRight" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
<Nodes />
<Links />
<Categories>
<Category Id="Projekt" />
<Category Id="Paket" />
</Categories>
<Styles>
<Style …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种使用提供给我的CA证书来验证X509格式的客户端证书的node.js方法(这些证书都不是由我创建/管理的,我的软件只需要验证发送给它的蜜蜂) 。
我已经找到了完成这项工作的几个模块,但是每个模块都有问题:
x509.verify(cert, CABundlePath, cb)
,但是它需要从FS读取证书,而且我已经将它们存储在内存中了。这很麻烦,因为到达我应用程序的每个Web请求都将完成此操作。forge.pki.BadCertificate
从抛出了一个错误forge.pki.verifyCertificateChain(caStore, [ cer ], cb)
。pem.verifySigningChain(cer, [ ca ], cb)
会抱怨在从中加载文件时会出错/var/...
。即使可行,我也会避免使用此lib作为依赖openssl命令行工具的方式,我想避免现在,我感到非常愚蠢,因为我无法通过上述任何模块来完成此简单任务。有人可以给我指出一个简单的解决方案,该解决方案可以让我使用给定的CA证书来验证X509证书的签名/有效性吗?:s
[编辑]基本上,我需要openssl verify -verbose -CAfile ca-crt.pem client1-crt.pem
的Node.js
,但不依赖于OpenSSL的命令行工具,并没有该证书暂时保存到磁盘。
[edit2]是否可以仅使用https://nodejs.org/api/crypto.html#crypto_verify_verify_object_signature_signatureformat?
我想在我的iPad应用程序中提供用户输入字段,用户可以在其中键入城市或位置的名称,应用程序应显示用户可以选择的可能城市/位置列表,我可以获得地理坐标从(在a上添加标记MKMapView
).
我试过了CLGeocoder
,但似乎它只给我一个结果,加上结果不准确.例如,将"Stutt"作为地址字符串产生"Straubing,德国"作为结果,wheareas"Stuttgart"将提出"斯图加特"(正确)作为结果(因此我预计"斯图特"至少有2个结果).此外,在美国有一个叫斯图加特的城市,结果也没有给出.(我使用了本页最底部的示例代码:https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/UsingGeocoders/UsingGeocoders.html)
任何人都可以根据用户文本输入指导我找到适合城市名称/位置查找的解决方案吗?
在我的UITableView
i有一组自定义单元格包含UITextField
.我发现(困难的方式),显然离开当前视图(通过推动新的视图控制器或解除活动视图('返回'))将使我的应用程序崩溃,当键盘仍然可见时.
要在用户仍在编辑时隐藏键盘UITextField
,但视图已更改,我[self.view endEditing:YES];
在推送新视图控制器之前添加,也在viewWillDisappear
方法中添加.
现在,我的应用程序仅崩溃了5个中的1个以隐藏键盘.在这里,我可能已经了解了这个原因:当细胞移出屏幕时,它会被破坏/回收,所以它可以在需要时再次出列.这意味着,一旦我的单元格和包含的文本字段移出屏幕,向其发送resignFirstResponder
消息(手动或通过[self.view endEditing:YES];
,应用程序将崩溃.这是回溯:
#0 0x012e309b in objc_msgSend ()
#1 0x05956888 in dyld_stub_usleep ()
#2 0x003ff056 in -[UIResponder resignFirstResponder] ()
#3 0x003c697f in -[UITextField resignFirstResponder] ()
#4 0x003c6ab1 in -[UIView(UITextField) endEditing:] ()
#5 0x00012c0a in -[MyController viewWillDisappear:] (self=0x7419e90, _cmd=0x52aa27e, animated=1 '\001') at MyController:121
#6 0x003ee9a2 in -[UINavigationController _startTransition:fromViewController:toViewController:] ()
#7 0x003e932a in -[UINavigationController _startDeferredTransitionIfNeeded] ()
#8 0x003e8fb6 in -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] ()
#9 0x003e9142 …
Run Code Online (Sandbox Code Playgroud) 你怎么能创建一个UIPopOverController
如下所示:
是定制的UIView
,还是某种形式的UIPopOverController
?
我试图了解非阻塞网络 IO 在Node.js
/中如何工作libuv
。我已经发现文件IO 是使用libuv
工作线程完成的(因此,在后台线程中)。然而,在很多地方都指出网络epoll
IO 是使用诸如、等系统调用以非阻塞方式完成的kqueue
(取决于操作系统)。
现在我想知道这是否意味着实际的 IO 部分 ( read()
)仍然在主线程上完成,从而阻塞,即使epoll
使用了eg?据我了解,epoll
仅通知可用事件,但实际上并不执行读/写操作。至少在我发现的示例中(例如http://davmac.org/davpage/linux/async-io.html)epoll
总是与系统调用结合使用read
,这是一个阻塞IO操作。
换句话说,如果libuv
使用单线程并且epoll
在数据可供读取时收到通知,那么接下来的读取操作是否正在主线程上执行,从而可能阻塞主线程上的其他操作(考虑网络请求)?
在我的Scala代码(库以及应用程序)我目前使用的混合Option
和Try
,当任一两个感觉更apropriate。
我倾向于实现“ doSomething”方法,该方法可以在返回值成功或在失败时成功Try
。也就是说,它们可以包含引发的代码,或者当我“手动”检测到错误时,人为地创建a Throwable
并返回a Failure
。这些方法的返回值因此为Try[ReturnType]
。
现在,我读到创建异常在某种程度上不是最优的,因为它创建了堆栈跟踪(因此很慢),而我什至不需要。我还看到了使用的子类的示例ControlThrowable
,这些示例不会创建堆栈跟踪,但是它们也没有消息,Try
当然也不会捕获它。
现在我的具体问题是,我一般都主张Either
过Try
,当我想要做的运行时错误处理/方法的返回值,并使用Try
在那里我真正需要的情况下,只能抓东西(如第三方代码)?
这样,我就不必创建笨拙的Throwable
s,而只需使用例如字符串in Left
来产生错误。
所以基本上:
Option
:日常使用的东西是否具有价值Try
:在方法内捕获异常,但不用作返回值Either
:通用返回值,包含错误(字符串)或成功值这个概念行得通吗,还是有一种更可行/更通用的方法?
我试图用来EKCalendarChooser
获取用户选择的多个日历。这是我呈现视图的方式:
EKCalendarChooser* dvc= [[[EKCalendarChooser alloc] initWithSelectionStyle:EKCalendarChooserSelectionStyleMultiple displayStyle:EKCalendarChooserDisplayAllCalendars eventStore:eventStore] autorelease];
dvc.selectedCalendars= self.selectedCalendars;
dvc.delegate= self;
dvc.contentSizeForViewInPopover= CGSizeMake(320.0, 480.0);
self.popOver= [[UIPopoverController alloc] initWithContentViewController:dvc];
[self.popOver release];
self.popOver.delegate= self;
UIBarButtonItem* item= sender;
[self.popOver presentPopoverFromBarButtonItem:item permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
calendarChooserSelectionDidChange
一旦选择一个或多个日历,但每次的selectedCalendars属性EKCalendarChooser
为空,我都会收到消息!
- (void)calendarChooserSelectionDidChange:(EKCalendarChooser *)calendarChooser
{
NSLog(@"selected %d calendars", calendarChooser.selectedCalendars.count);
}
2012-02-26 12:50:39.137 MyApp[8604:707] selected 0 calendars
2012-02-26 12:50:42.100 MyApp[8604:707] selected 0 calendars
Run Code Online (Sandbox Code Playgroud)
当我使用EKCalendarChooserSelectionStyleSingle
而不是时EKCalendarChooserSelectionStyleMultiple
,一切正常,并且我将通过selectedCalendars属性获得正确的所选日历。
我做错什么了EKCalendarChooser
吗,或者这是一个错误?
我想复制默认iPad日历的事件标记,如下所示:
我正在尝试使用coregraphics,绘制圆形rect的路径.这是我能想到的结果:
正如您所看到的,iPad的版本在圆角处看起来更平滑.我试图使用更大的线宽,看起来像这样:
我的代码看起来像这样(从这个网站获得):
UIColor* fillColor= [self.color colorByMultiplyingByRed:1 green:1 blue:1 alpha:0.2];
CGContextSetLineWidth(ctx, 1.0);
CGContextSetStrokeColorWithColor(ctx, self.color.CGColor);
CGContextSetFillColorWithColor(ctx, fillColor.CGColor);
CGRect rrect = self.bounds;
CGFloat radius = 30.0;
CGFloat width = CGRectGetWidth(rrect);
CGFloat height = CGRectGetHeight(rrect);
if (radius > width/2.0)
radius = width/2.0;
if (radius > height/2.0)
radius = height/2.0;
CGFloat minx = CGRectGetMinX(rrect);
CGFloat midx = CGRectGetMidX(rrect);
CGFloat maxx = CGRectGetMaxX(rrect);
CGFloat miny = CGRectGetMinY(rrect);
CGFloat midy = CGRectGetMidY(rrect);
CGFloat maxy = CGRectGetMaxY(rrect);
CGContextMoveToPoint(ctx, minx, midy);
CGContextAddArcToPoint(ctx, minx, miny, midx, miny, radius); …
Run Code Online (Sandbox Code Playgroud) 我想在我的程序中实现的是以下callstack/workflow:
我的想法是,这dispatch()
将是异步的,而其他两种方法仍然是非同步的.但是,出于某种原因,除非我做了2 + 3,否则它对我不起作用.异步.也许我还有一些误解.
根据我的理解,我可以a)authorize()
在调用异步方法时使用-keyword(这将挂起方法并在异步方法完成后继续),或者b)省略httpPost()
-keyword而是调用异步方法的Task.Result返回值,将阻塞直到结果可用.
让我告诉你工作的例子:
private int dispatch(string options)
{
int res = authorize(options).Result;
return res;
}
static async private Task<int> authorize(string options)
{
string values = getValuesFromOptions(options);
KeyValuePair<int, string> response = await httpPost(url, values);
return 0;
}
public static async Task<KeyValuePair<int, string>> httpPost(string url, List<KeyValuePair<string, string>> parameters)
{
var httpClient = new HttpClient(new HttpClientHandler());
HttpResponseMessage response = await httpClient.PostAsync(url, new FormUrlEncodedContent(parameters));
int code = (int)response.StatusCode;
response.EnsureSuccessStatusCode();
string responseString = …
Run Code Online (Sandbox Code Playgroud) ipad ×4
ios ×3
ios5 ×3
c# ×2
node.js ×2
objective-c ×2
.net ×1
async-await ×1
c ×1
ca ×1
certificate ×1
clgeocoder ×1
either ×1
eventkit ×1
geolocation ×1
http ×1
io ×1
iphone ×1
libuv ×1
networking ×1
nuget ×1
packages ×1
scala ×1
ssl ×1
try-catch ×1
uikit ×1
uitableview ×1
uitextfield ×1
verification ×1