小编Sim*_*mon的帖子

如何实现可取消的事件?

在System.ComponentModel中,有一个名为CancelEventArgs的类,其中包含可在事件侦听器中设置的Cancel成员.MSDN上的文档解释了如何使用它来从侦听器中取消事件,但是如何使用它来实现我自己的可取消事件?有没有办法在每个侦听器触发后检查Cancel成员,或者我必须等到事件触发所有侦听器之后?

c# events

9
推荐指数
1
解决办法
6419
查看次数

对于任何值类型T,如何确定对象的类型是否为IEnumerable <T>的子类?

我需要验证一个对象,看它是否为null,值类型,或者IEnumerable<T>where T值是一个值类型.到目前为止,我有:

if ((obj == null) ||
    (obj .GetType().IsValueType))
{
    valid = true;
}
else if (obj.GetType().IsSubclassOf(typeof(IEnumerable<>)))
{
     // TODO: check whether the generic parameter is a value type.
}
Run Code Online (Sandbox Code Playgroud)

所以我发现对象是null,值类型,或IEnumerable<T>某些T; 如何检查这是否T是值类型?

.net c# generics reflection

9
推荐指数
1
解决办法
1682
查看次数

是否有惯用的ruby/rails方式返回第一个truthy映射值?

我有一个对象数组,其中一些响应:描述,我想从第一个描述得到描述.我能做到这一点:

objects.detect{|o| o.try(:description)}.description
Run Code Online (Sandbox Code Playgroud)

或这个:

objects.map{|o| o.try(:description)}.detect{|o| o}
Run Code Online (Sandbox Code Playgroud)

但第一个不是DRY(描述在那里两次),第二个是在找到值之前遍历整个数组.ruby标准库中有什么东西,或者Rails对它的扩展,这可以让我做这样的事情:

objects.detect_and_return{|o| o.try(:description)}
Run Code Online (Sandbox Code Playgroud)

我知道我可以轻松地编写它,但标准库足够大,我可能不需要.有没有像我这样的功能detect_and_return

ruby functional-programming ruby-on-rails

9
推荐指数
1
解决办法
483
查看次数

如何在xcode4的界面构建器中为视图设置辅助功能标签?

我希望使用KIF为我们的iPhone应用程序编写功能测试.它使用"辅助功能标签"来标识它正在测试的UI项目.如何在xcode4的界面构建器中为视图设置辅助功能标签?

iphone accessibility functional-testing xcode4

9
推荐指数
1
解决办法
1万
查看次数

我可以从NSLocale获取本地货币的代码吗?

我可以从NSLocale获取本地货币的代码吗?我试过这个:

NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *currencyCode = [locale objectForKey:NSLocaleCurrencyCode];
Run Code Online (Sandbox Code Playgroud)

但currencyCode回复为零(我想要"欧元"或类似).

objective-c ios nslocale

9
推荐指数
1
解决办法
6381
查看次数

我可以用git只读文件吗?

我正在编写一个使用版本化Core Data模型的iOS应用程序.
我刚刚发布了一个版本的应用程序崩溃升级因为我不小心编辑版本以及创建一个新版本.

为了阻止这种情况再次发生,我想以某种方式标记旧版本,以防止在没有先删除标志的情况下修改这些文件的任何签入.

为了使事情变得更复杂,我使用git-svn,因此将只读repo作为子模块是行不通的.

git git-svn

9
推荐指数
1
解决办法
2344
查看次数

我可以使用UIRequiredDeviceCapabilities将应用程序限制为iPad和iPhone 6+吗?

我有一个应用程序,其UI需要相当多的屏幕空间.目前,它只是iPad,但我认为它在iPhone 6+上可以.我想把它变成一个通用的应用程序,但限制在iPad和iPhone 6+.我可以设置一些设备功能组合来实现这一目标吗?

iphone ipad ios iphone-6-plus

9
推荐指数
1
解决办法
1036
查看次数

我可以强制子类覆盖方法而不使其抽象化吗?

我有一个带有一些抽象方法的类,但我希望能够在设计器中编辑该类的子类.但是,设计者无法编辑子类,除非它可以创建父类的实例.所以我的计划是用存根替换抽象方法并将它们标记为虚拟 - 但是如果我创建另一个子类,如果我忘记实现它们,我将不会得到编译时错误.

有没有办法标记方法,以便它们必须由子类实现,而不将它们标记为抽象?

.net c# abstract-class visual-studio-2008

8
推荐指数
2
解决办法
9631
查看次数

当我更新我的sqlite核心数据存储时,如何避免在SQL执行期间出现"错误:约束失败"?

我们的应用程序允许用户从API提供的列表中选择位置.该列表不经常更新,只能通过添加项目进行更新,因此应用程序每次都会在Core Data sqlite商店中附带快照而不是点击API,我们希望它定期更新列表.这样做的代码是这样的:

  • 为线程创建托管对象上下文
  • 从API获取完整列表
  • 每一个人:
    • 在上下文中找到匹配的locationID的位置
    • 如果找不到,请在上下文中插入一个新的
    • 使用新信息更新位置
  • 保存上下文

从空白DB开始时,这很好.但是,当我们第二次运行它时,它在保存期间失败并显示消息"SQL执行期间出错:约束失败".即使我将它限制在一个位置,它也会这样做.如果我打开SQL调试,我会看到以下内容:

CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: COMMIT
CoreData: sql: BEGIN EXCLUSIVE
CoreData: sql: INSERT INTO ZLOCATION(Z_PK, Z_ENT, Z_OPT, ZGEOID, ZCOUNTY, ZCOUNTRYCODE, ZNAME, ZLATITUDE, ZLONGITUDE, ZLANGUAGECODE) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
CoreData: error: (19) constraint failed
CoreData: annotation: Disconnecting from sqlite database due to an error.
Run Code Online (Sandbox Code Playgroud)

然后重新连接并再次尝试几次,然后放弃.

我的代码肯定是找到旧的Locations并且对象都是有效的 - 或者至少[object validateForUpdate]返回YES.错误是什么意思?有没有办法找出哪个约束失败?

如果我使用二进制存储,则错误消失 - 但二进制存储是原子的并且在写入时会阻塞多年.它看起来像sqlite商店中的一个错误 - 有没有人找到解决方法?

iphone core-data objective-c

8
推荐指数
1
解决办法
4195
查看次数

我可以使用UIPinchGestureRecognizers来区分水平和垂直捏合吗?

我有一个用户可以捏缩增长或缩小的视图.我希望这可以沿两个轴工作 - 如果夹点大多是水平的,它会水平地增长/收缩物体,但如果夹点大部分是垂直的,它会垂直地增长/收缩物体.

我可以用一个或两个捏合识别器实现这一点,如果是这样,怎么做?

objective-c uigesturerecognizer ios

8
推荐指数
1
解决办法
1143
查看次数