在Mac和iOS平台上,内存泄漏通常是由未发布的指针引起的.传统上,检查您的分配,副本和保留以确保每个都有相应的发布消息始终是至关重要的.
Xcode 4.2附带的工具链引入了最新版本的LLVM编译器的自动引用计数(ARC),通过让编译器为您的内存管理来完全解决这个问题.这非常酷,它确实减少了大量不必要的,平凡的开发时间,并防止了很多粗心的内存泄漏,这些泄漏很容易通过适当的保留/释放平衡来修复.当您为Mac和iOS应用程序启用ARC时,甚至需要以不同方式管理自动释放池(因为您不应再分配自己的NSAutoreleasePools).
但是,其他的内存泄漏它不能阻止我仍然要注意?
作为奖励,Mac OS X和iOS上的ARC与Mac OS X上的垃圾收集有什么区别?
简单吧?好吧,这不行: - \
$skuList = explode('\n\r', $_POST['skuList']);
Run Code Online (Sandbox Code Playgroud) 在WPF的MVVM模式中,处理对话框是更复杂的操作之一.由于您的视图模型对视图一无所知,因此对话通信很有趣.我可以公开一个ICommand,当视图调用它时,会出现一个对话框.
有没有人知道处理对话结果的好方法?我说的是关于Windows对话框,比如MessageBox.
我们这样做的方法之一是在viewmodel上有一个事件,当需要对话框时,视图会订阅该事件.
public event EventHandler<MyDeleteArgs> RequiresDeleteDialog;
Run Code Online (Sandbox Code Playgroud)
这没关系,但这意味着视图需要代码,这是我想远离的东西.
是否可以选择一组元素中的每个第四个元素?
例如:我有16个<div>元素......我可以写类似的东西.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
对于华丽的标题感到抱歉 - 如果我能想出一个简洁的标题,我就不用问这个问题了.
假设我有一个不可变的列表类型.它有一个操作Foo(x),它返回一个带有指定参数的新的不可变列表作为最后的额外元素.因此,要建立一个值为"Hello","immutable","world"的字符串列表,您可以编写:
var empty = new ImmutableList<string>();
var list1 = empty.Foo("Hello");
var list2 = list1.Foo("immutable");
var list3 = list2.Foo("word");
Run Code Online (Sandbox Code Playgroud)
(这是C#代码,如果您觉得语言很重要,我最感兴趣的是C#建议.这不是一个基本的语言问题,但语言的习语可能很重要.)
重要的是现有的列表不会被改变Foo- 所以empty.Count仍然会返回0.
获得最终结果的另一种(更惯用的)方式是:
var list = new ImmutableList<string>().Foo("Hello")
.Foo("immutable")
.Foo("word");
Run Code Online (Sandbox Code Playgroud)
我的问题是:Foo最好的名字是什么?
编辑3:正如我稍后透露的那样,该类型的名称可能实际上并不存在ImmutableList<T>,这使得该位置清晰.想象一下,它是TestSuite并且它是不可变的,因为它所属的整个框架是不可变的......
(编辑完3)
到目前为止我提出的选项:
Add:常见于.NET,但意味着原始列表的变异Cons:我相信这是函数式语言中的正常名称,但对于没有这些语言经验的人来说毫无意义Plus:我最喜欢的,它并不意味着我的变异.显然,这也用在Haskell中,但期望略有不同(Haskell程序员可能希望它将两个列表一起添加而不是将一个值添加到另一个列表中).With:与其他一些不可变的约定一致,但它与IMO没有完全相同的"附加性".And:不是很具描述性.我用来选择的标准是:
如果我不够清楚,请询问更多细节......
编辑1:这里是我的喜欢推理Plus来Add.考虑以下两行代码:
list.Add(foo); …Run Code Online (Sandbox Code Playgroud) 只是想知道是否有可能以某种方式使CSS content属性插入html代码而不是字符串:before或:after类似的元素:
.header:before{
content: '<a href="#top">Back</a>';
}
Run Code Online (Sandbox Code Playgroud)
这将是非常方便的...它可以通过Javascript完成,但使用CSS这将真正让生活更轻松:)
我有一个使用Razor视图引擎在ASP.NET MVC中运行的大型站点.
我有一个基本样式表,其中包含整个站点的所有通用样式.但是,有时候,我在页面中有页面特定的样式<head>- 通常这是一行或两行.
我并不特别喜欢将CSS放入<head>其中并不严格区分关注点,但对于一两行,这确实是特定于该页面的,我更喜欢不必附加另一个文件并添加到带宽中.
我有一个实例虽然我想将页面特定的媒体查询放入其中<head>,但因为媒体查询使用@符号和括号{}它与剃刀语法冲突:
@section cphPageHead{
<style>
/* PAGE SPECIFIC CSS */
...
@media only screen and (max-width : 960px) <-- the @ symbol here is clashing!
{
... }
}
</style>
}
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
这两者有什么区别:
font-style:italic
font-style:oblique
Run Code Online (Sandbox Code Playgroud)
我尝试使用W3Schools编辑器,但无法区分.
我错过了什么?
是否可以为元素定义CSS样式,仅在匹配元素包含特定元素(作为直接子项)时才应用?
我认为最好用一个例子来解释.
注意:我正在尝试设置父元素的样式,具体取决于它包含的子元素.
<style>
/* note this is invalid syntax. I'm using the non-existing
":containing" pseudo-class to show what I want to achieve. */
div:containing div.a { border: solid 3px red; }
div:containing div.b { border: solid 3px blue; }
</style>
<!-- the following div should have a red border because
if contains a div with class="a" -->
<div>
<div class="a"></div>
</div>
<!-- the following div should have a blue border -->
<div>
<div class="b"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
注意2 …
我需要使用WIF保护流式WCF net.tcp服务端点.它应该对我们的令牌服务器验证传入呼叫.该服务是流式传输的,因为它旨在传输大量数据.
这似乎是不可能的. 如果我无法绕过捕获物,我的圣诞节将被毁掉,我会在阴沟里喝水,而快乐的购物者则会越过我缓慢冷却的身体.手提箱严重,你们.
为什么这不可能?这是Catch-22.
在客户端上,我需要使用我从令牌服务器获取的GenericXmlSecurityToken创建一个通道.没问题.
// people around here hate the Framework Design Guidelines.
var token = Authentication.Current._Token;
var service = base.ChannelFactory.CreateChannelWithIssuedToken(token);
return service.Derp();
Run Code Online (Sandbox Code Playgroud)
我说"没问题"吗?Problemo.事实上,NullReferenceException风格问题.
"兄弟,"我问框架,"你甚至无效检查吗?" 框架是沉默的,所以我拆开并发现了
((IChannel)(object)tChannel).
GetProperty<ChannelParameterCollection>().
Add(federatedClientCredentialsParameter);
Run Code Online (Sandbox Code Playgroud)
是异常的来源,并且GetProperty呼叫正在返回null.那么,WTF?事实证明,如果我打开Message安全性并将客户端凭据类型设置为,IssuedToken那么此属性现在存在于ClientFactory(protip:IChannel中没有"SetProperty"等效,即混蛋).
<binding name="OMGWTFLOL22" transferMode="Streamed" >
<security mode="Message">
<message clientCredentialType="IssuedToken"/>
</security>
</binding>
Run Code Online (Sandbox Code Playgroud)
甜.没有更多的NRE.然而,现在我的客户在出生时出现了故障(仍然爱他,所以).通过WCF诊断进行挖掘(protip:让你的最坏的敌人在击碎它们并在你面前驾驶它们之前做到这一点,但在享受他们的女人和孩子的悲伤之前),我看到它是因为服务器和客户端之间的安全性不匹配.
'net.tcp:// localhost:49627/MyService'不支持请求的升级.这可能是由于绑定不匹配(例如在客户端而不是在服务器上启用安全性).
检查主机的诊断(再次:压碎,驱动,读取日志,享受哀叹),我看到这是真的
协议类型application/ssl-tls已发送到不支持该类型升级的服务.
"好吧,自我,"我说,"我只是打开主机上的Message安全性!" 我做到了. 如果你想知道它的样子,它就是客户端配置的精确副本.抬头.
结果: Kaboom.
绑定('NetTcpBinding',' http://tempuri.org/ ')支持不能与消息级安全性一起配置的流.考虑选择不同的传输模式或选择传输级别安全性.
因此,我的主机不能通过令牌进行流式传输和保护.第二十二条军规.
tl; dr:如何使用WIF保护流式net.tcp WCF端点???