我有一个通用转换库的以下代码:
(defn using-format [format] {:format format})
(defn- parse-date [str format]
(.parse (java.text.SimpleDateFormat. format) str))
(defn string-to-date
([str]
(string-to-date str (using-format "yyyy-MM-dd")))
([str conversion-params]
(parse-date str (:format (merge (using-format "yyyy-MM-dd") conversion-params)))))
Run Code Online (Sandbox Code Playgroud)
我需要能够像这样调用它:
(string-to-date "2011-02-17")
(string-to-date "2/17/2011" (using-format "M/d/yyyy"))
(string-to-date "2/17/2011" {})
Run Code Online (Sandbox Code Playgroud)
第三种情况有些问题:地图不一定包含:format对功能至关重要的键.这就是merge默认值的原因.
我需要有十几个类似的函数用于所有其他类型之间的转换.是否有一种更优雅的方式,不需要我merge在每个功能中复制粘贴,使用等?
理想情况下,寻找这样的东西(宏?):
(defn string-to-date
(wrap
(fn [str conversion-params]
(parse-date str (:format conversion-params))) ; implementation
{:format "yyyy-MM-dd"})) ; default conversion-params
Run Code Online (Sandbox Code Playgroud)
...这将产生一个重载函数(一元和二元),merge在第一个例子中二进制具有相同的功能.
嗨我正在尝试在Delphi中设计模式,因为我在Delphi中找不到我喜欢的参考资料,我正在转换我在O'Reilly C#3.0设计模式书中的模式.但这不是问题.我已经从本书中创建了代理模式,但是有一些Delphi接口,构造函数和析构函数以及一般对象生命周期和行为的概念,我显然不明白.首先,我将发布我的代码:
unit Unit2;
interface
uses
SysUtils;
type
ISubject = interface
['{78E26A3C-A657-4327-93CB-F3EB175AF85A}']
function Request(): string;
end;
TSubject = class
public
function Request(): string;
constructor Create();
end;
TProxy = class (TInterfacedObject, ISubject)
private
FSubject: TSubject;
public
function Request(): String;
destructor Destroy(); override;
end;
TProtectionProxy = class (TInterfacedObject, ISubject)
private
FSubject: TSubject;
FPassword: String;
public
constructor Create();
destructor Destroy(); override;
function Authenticate(supplied: String): String;
function Request(): String;
end;
implementation
{ TSubjectAccessor.TProxy }
destructor TProxy.Destroy;
begin
if Assigned(Self.FSubject) then
FreeAndNil(Self.FSubject);
inherited;
end;
function …Run Code Online (Sandbox Code Playgroud) 可能遗漏了一些非常基本的东西.我创建了一个WCF 4.0 Rest服务.当我从浏览器访问网址时,它没有问题,我正在回复我想要的东西.
但是现在我想从客户端mvc应用程序中使用该服务(它也将被其他非.net平台使用,这就是为什么它首先是一个休息服务).
问题是如何获得服务引用,以便我可以开始在我的c#代码中使用它?使用新的最小WCF .net 4配置方法并且没有服务契约的接口,我不知道如何指定mex端点.最终,我不想在生产过程中使用mex端点,只是在开发过程中.我希望能够指定我的所有服务(在一个应用程序中大约10个)都有一个端点和一个小的配置,vs2010 .config转换只是在我发布时撕掉了.
我试图为UILabel上的文字设置颜色的动画来从:[黑色]到[白色]到[黑色]并重复.
- (void)timerFlash:(NSTimer *)timer {
[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:0.0]];
[UIView animateWithDuration:1
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:1.0]];}
completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
.
[self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFlash:) userInfo:nil repeats:YES]];
Run Code Online (Sandbox Code Playgroud)
首先,我不确定我的方法,我的计划(如上所示)是设置动画块并使用重复的NSTimer调用它直到取消.
我的第二个问题(正如你在上面看到的)是我从黑色(alpha 0)到白色(alpha 1)的动画,但我不知道如何再次动画回黑色,所以动画无缝循环
基本上我想要的是在UILabel上脉冲的文本颜色,直到用户按下按钮继续.
我遇到了麻烦,因为你不能动画[UILabel setColor:]你可以动画[UILabel setAlpha:]所以我要去试试.
- (void)timerFlash:(NSTimer *)timer {
[[self navTitle] setAlpha:0.5];
[UIView animateWithDuration:2
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{[[self navTitle] setAlpha:0.9];}
completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
这是有效的(顺便说一句:我确实希望它停止,这就是为什么我把它连接到NSTimer,所以我可以取消它)唯一的事情就是这从midGray到nearWhite的动画然后弹出.有谁知道我会如何动画从nearWhite到midGray,所以我得到了一个很好的平滑循环?

Dave DeLong(见下文)建议的代码在修改为使用CALayer不透明度样式属性时确实有效:
UILabel *navTitle;
@property(nonatomic, retain) UILabel *navTitle;
Run Code Online (Sandbox Code Playgroud)
.
// ADD ANIMATION
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"];
[anim setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[anim setFromValue:[NSNumber …Run Code Online (Sandbox Code Playgroud) 为什么这段代码不会造成死锁?
private static readonly object a = new object();
Run Code Online (Sandbox Code Playgroud)
...
lock(a)
{
lock(a)
{
....
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在研究一种方法,用于在多个设备(如iPad或Mac)之间同步存储在iPhone应用程序中的核心数据.在iOS上使用Core Data的同步框架并不多(如果有的话).但是,我一直在考虑以下概念:
我需要考虑什么花哨的东西吗?我查看了REST框架,例如ObjectiveResource,Core Resource和RestfulCoreData.当然,这些都与Ruby on Rails一起使用,我并不依赖它,但它是一个开始的地方.我对我的解决方案的主要要求是:
我考虑过一些挑战:
还有什么我在这里失踪的吗?我应该考虑哪些框架才能实现这一目标?
我正处于构建Facebook游戏的计划和学习阶段.在过去的一年里,我最重要的问题是"Flash还是HTML5?".而不是试图决定答案,我认为我会给市场更多的时间来成熟并学习如何设计游戏以及如何管理服务器元素.
在过去的一年里,我已经吞噬了数千页有关游戏开发和业务开发的文章,同时在AS3,python,php,C#和javascript中获得了稳固的基础.所以,我最感兴趣的是选择一个最适合这项工作的系统,而不是,例如,开始假设游戏逻辑将在python中,因为这是我最喜欢的.
游戏的核心是战略游戏,除了标准的Facebook"邀请所有朋友"功能外,我还计划广泛使用许多手机.由于主题元素,图形不会华而不实,并且在大多数地方会相当平坦,而不是像farmville或其他Flash Facebook游戏那样的3D等距.
因此从技术角度来看,HTML5没有任何真正的优势,我可以看到闪存,闪存也没有任何真正的优势超过HTML5.如果你看到一个人比另一个人有明显的优势,那么我很乐意在你的评论中听到这一点.
我有五个主要问题需要您的意见:
1)考虑到未来的市场趋势,哪个平台更适合构建Facebook游戏?
2)哪个平台有更好的内在元素来帮助防止作弊?(比如flash被编译成.swf vs javascript是纯文本的)
3)对于未来招聘的最佳游戏开发人才,哪个平台最具吸引力?
4)哪个平台最容易从一个游戏中获取技术并将其用于其他未来的游戏?(比如在flash中开发等距图形)
5)哪个平台最容易与团队一起开发?
我的最终目标是在两个UserControl之间设置大小变化的动画.我试图实现这一目标的方式产生了一个主要问题.
我从一个包含一些基本文本和图标显示的DataTemplate开始,一个高度设置为0的'edit'UserControl和一个编辑按钮.编辑UserControl在GridRow中,Height ="Auto",因此它也以高度0开始.按钮具有由按钮单击触发的DoubleAnimation,用于将UserControl的高度设置为0到300.这一切都有效正好.这是一个简化的代码示例.
<DataTemplate x:Key="UserTemplate" DataType="{x:Type dataTypes:User}">
...
<controls:UserView Grid.Row="1" Grid.ColumnSpan="5" x:Name="EditRow"
DataContext="{Binding}" Height="0" />
<controls:UserEditor Grid.Row="2" Grid.ColumnSpan="5" x:Name="EditRow"
DataContext="{Binding}" Height="0" />
<Button Grid.Row="0" Grid.Column="4" Name="Edit" Style="{StaticResource ButtonStyle}"
ToolTip="Edit user" Click="Button_Click">
<Image Source="/SolutionName;component/Images/Edit.png" Stretch="None" />
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Name="EditRowHeightAnimation"
Storyboard.TargetName="EditRow" Storyboard.TargetProperty="Height" From="0"
To="300" Duration="00:00:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
...
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
问题是编辑UserControl不是300像素高,我不知道它在设计时的高度.我尝试了以下,但它不起作用.
<DoubleAnimation Name="EditRowHeightAnimation" Storyboard.TargetName="EditRow"
Storyboard.TargetProperty="Height" From="0" To="{Binding DesiredSize.Height,
ElementName=EditRow}" Duration="00:00:0.5" />
Run Code Online (Sandbox Code Playgroud)
我也尝试从后面的代码编辑UserControl上调用Measure()和UpdateLayout().我注释掉了按钮单击触发器和xaml动画,并在代码后面添加了一个......现在这种方式有效,但我总是得到相同(错误的)DesiredSize.也就是说,UserControl高度会变得动画,但只是到了错误的高度.这是按钮单击处理程序代码.
private void Button_Click(object sender, RoutedEventArgs e)
{
User currentUser = (User)CollectionViewSource.GetDefaultView(Users).CurrentItem;
ListBoxItem listBoxItem …Run Code Online (Sandbox Code Playgroud) 我正在努力学习如何在Android中正确布局组件.我是一名经验丰富的CSS/MXML开发人员,我很难完全理解Android组件中的布局属性.
有一点是我不确定这些之间的区别:
你应该使用线性,表格或相对布局来使用其中一个吗?我想学习的一个例子是布局上的整体边距,其中包含与屏幕顶部/中部/底部相关的独立组件.sdk文档是一个良好的开端,但它们并没有显示在不同情况下的工作方式.
关于在哪里学习更复杂/全面的布局设计的任何提示?