小编her*_*ube的帖子

程序集引用的"特定版本"属性在Visual Studio中的工作原理是什么?

今天,我仔细研究了Visual Studio 2010中程序集引用的"特定版本"属性.经过一些意外结果的实验​​后,我开始尽可能多地了解该属性的工作原理.即便如此,在我看来,并没有得到所有的答案,所以这是我尝试自我回答这个问题:

如何准确地做在Visual Studio程序集引用作品的"特定版本"属性?

.net visual-studio

143
推荐指数
2
解决办法
7万
查看次数

如何从SenTestingKit/OCUnit迁移到XCTest?

我正在将我的项目从Xcode 4.6.3迁移到Xcode 5.0.2.该项目的单元测试是使用SenTestingKit/OCUnit开发的.现在当我在Xcode 5中运行测试时,我从RunUnitTests脚本中得到一个错误告诉我

RunUnitTests已过时.

可能相关的是Xcode 5发行说明中的​​这个注释:

SenTestingKit和OCUnit已弃用.使用迁移器移动到XCTest.

不幸的是,我还没有找到更多关于这个神秘的"迁移者"的信息.可能我的google-fu缺乏[再次],所以我的主要问题是:如何将单元测试从SenTestingKit/OCUnit迁移到新的XCTest(有或没有"迁移器")?

第二个问题,如果迁移是一项复杂的业务:是否有可能让Xcode 5运行仍基于SenTestingKit/OCUnit的单元测试?在所有这些仅仅被弃用之后,它们应该仍然存在并且功能性.

ocunit xcode5 xctest

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

使用Dependency Walker分析x86可执行文件在Windows 7 x64上挂起

在Windows 7 x64下,当我尝试使用最新版本的Dependency Walker(2.2.6000)分析x86可执行文件时,分析过程始终会挂起.大多数情况下,加载的最后一个DLL是c:\windows\syswow64\URLMON.DLL,因此似乎该DLL内部的某些内容导致了问题.在Windows 7 x86上分析相同的可执行文件可以完美地运行.

我用Google搜索得非常广泛,但无法找到问题的解决方案.我发现的一个建议是卸载IE 8或IE 9并用IE 7替换它,但这并没有真正帮助.我能观察到的唯一影响是,在IE 7中,分析过程会挂起在不同的DLL上(iertutil.dll如果我没记错的话,也可以从系统的syswow64文件夹中找到).

所以我的问题是:如何让Dependency Walker在x64 Windows 7上配置x86应用程序?当然,首先要知道问题存在的原因也很好:-)

最后的一些说明:

  • 我正在使用x86版本的Dependency Walker,因为我想分析一个x86可执行文件
  • 以管理员身份运行Dependency Walker无济于事
  • 标记为"可能在WOW64上失败"的所有性能分析选项均被禁用
  • 我目前用作重现问题的测试用例的可执行文件是Sumatra PDF查看器(下载链接),因为它是一个简单的.exe,不需要安装

dependency-walker windows-7-x64

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

如何测试NULL或nullptr的gcroot引用?

在C++/CLI项目中,我在本机C++类中有一个方法,我想检查or 的gcroot引用.我该怎么做呢?以下所有内容似乎都不起作用:NULLnullptr

void Foo::doIt(gcroot<System::String^> aString)
{
    // This seems straightforward, but does not work
    if (aString == nullptr)
    {
        // compiler error C2088: '==': illegal for struct
    }

    // Worth a try, but does not work either
    if (aString == NULL)
    {
        // compiler error C2678: binary '==' : no operator found
        // which takes a left-hand operand of type 'gcroot<T>'
        // (or there is no acceptable conversion)
    }


    // Desperate, but same result as above …
Run Code Online (Sandbox Code Playgroud)

c++ c++-cli nullpointerexception

16
推荐指数
3
解决办法
8644
查看次数

管理iOS应用中的Documents/Inbox文件夹的好方法

当文档交互系统将文件传递到iOS应用程序时,该文件的副本将存储在应用程序包的Documents/Inbox文件夹中.应用程序处理完文件后,显然需要从中删除文件Documents/Inbox,否则文件夹将继续增长并浪费存储在设备上.

但是,我对这个简单的解决方案(A)感到不舒服,因为我的应用程序需要在完成处理和删除文件之前与用户进行交互.如果用户在此交互期间暂停应用程序,并且该应用程序在后台处理时会被杀死,则应用程序下次启动时将不会删除过时文件.当然,我可以改进我的应用程序以涵盖这种情况,但我怀疑总会有另一个边框案例会让我留下一个"不干净"的Documents/Inbox文件夹.

因此,优选的解决方案(B)将是Documents/Inbox在适当的时间移除文件夹(例如,当app正常启动时,即不通过文档交互).我仍然对此感到不舒服,因为我将访问一个文件系统路径,其位置未在任何地方正式记录.例如,如果在iOS的未来版本中,文档交互系统不再放置文件,我的应用程序将会中断Document/Inbox.

所以我的问题是:

  1. 你会推荐解决方案A或B吗?
  2. 您是否使用不同的方法,并且可以概述您的应用程序如何管理Document/Inbox
  3. 最后但同样重要的是:您是否知道一篇涵盖该主题并且我忽略了的官方Apple文档?

ios

12
推荐指数
2
解决办法
5128
查看次数

比较NSIndexPath

这将是一个非常愚蠢的事情,但我在我的cellForRowAtIndexPath中有这个代码:

if ([self.indexPathSelected compare:indexPath] == NSOrderedSame)
{
    NSLog(@" %d %d %d %d", self.indexPathSelected.row, self.indexPathSelected.section, indexPath.row, indexPath.section);
}
Run Code Online (Sandbox Code Playgroud)

这打印:

0 0 0 0

0 0 1 0

0 0 2 0

0 0 3 0

0 0 4 0

0 0 5 0

我原以为它只打印0 0 0 0.

我在这做错了什么?

uitableview nsindexpath ios

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

如何告诉Spotlight索引我的.dSYM包?

今天是我第一次尝试 - 并且失败 - 象征着新买的MacBook上的崩溃日志(我们称这台机器为MB1).MB1预装了Mac OS X 10.9.我将跟踪失败符号的问题跟踪到Spotlight没有索引我的任何.dSYM捆绑包(没有Spotlight索引,Apple的symbolicatecrash脚本无法找到.dSYM与崩溃日志匹配的捆绑包).我得出了我的结论,因为

mdfind "com_apple_xcode_dsym_uuids == *"
Run Code Online (Sandbox Code Playgroud)

不打印任何东西,虽然.xcarchive我的~/Library/Developer/Xcode/Archives文件夹中有几个包,但它们肯定包含.dSYM我可以打印的UUID的子包dwarfdump --uuid.我的.dSYM项目的构建文件夹(DerivedData)中也有几个包,但它们都没有被编入索引.

因此,简单易行的问题是:如何告诉Spotlight索引我的.dSYM包?


如果这个简单的问题没有简单的答案,这就是我在MB1上已经尝试过的:

  • 检查文件和文件夹的权限~/Library/Developer/Xcode/Archives(它们都没问题,文件夹为755,文件为644)
  • mdimport ~/Library/Developer/Xcode/Archives(没有效果)
  • 在"系统偏好设置>聚光灯>隐私"中,首先添加然后删除该~/Library/Developer/Xcode/Archives文件夹(也没有效果)
  • 检查mdutil -s /是否为卷启用了索引(它是)
  • 擦除并重建整个索引mdutil -E /(大概需要10-15分钟,但仍然没有效果)

详细说明:在切换到MB1之前,我有一台较旧的MacBook(让我们称之为机器MB2),这是我的开发机器.在MB2上,我从未遇到任何象征性问题.MB2安装了Mac OS X 10.8,而我还在积极开发它,但我最近将MB2升级到Mac OS X 10.9.

今天,mdfind在MB2上运行仍然给了我很多.dSYM捆绑包,包括Archives文件夹和项目的DerivedData构建文件夹.这些都是来自Mac OS X 10.8天的旧文件,但显然Spotlight在操作系统升级中保留其索引.我认为在创建新文件时看看Spotlight的行为会很有趣,所以我做了以下事情:

  1. 在MB2上启动Xcode,创建新存档,然后运行mdfind.这会.dSYMDerivedData构建文件夹中找到中间包. …

macos xcode spotlight symbolicate

11
推荐指数
1
解决办法
4348
查看次数

它可以在创建后签署一个git标签吗?

我创建了一个标签并忘了签名,然后将标签推送到GitHub.是否可以追溯签署该标签,还是必须创建新标签?

我已经阅读了man页面git tag并搜索了一下,但是没有提出任何线索,可以为已经存在的标签添加签名.

git sign

11
推荐指数
1
解决办法
434
查看次数

.RGS文件是如何工作的

在.rgs文件中,有一些注册表信息,我想知道.rgs文件中的信息如何添加到regetry中?

我有一个项目AAA,它将生成文件AAA.DLL,并有一个文件xxx.rgs包含注册表信息,并建立AAA.DLL,然后它将部署到另一台机器B,所以我不不知道如何在机器B上添加注册信息,我是否需要使用regsvr32命令注册AAA.dll?

com registry atl rgs

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

有人可以解释NSUserDefaults中的搜索列表功能吗?

我对搜索列表功能感到困惑NSUserDefaults.类引用说明了standardUserDefaults它设置由五个域组成的标准搜索列表的类方法.该方法的文档也暗示可以更改此搜索列表(由我添加的粗体):

即使再次调用此方法,对标准搜索列表的后续修改仍然有效 - 只有在第一次调用此方法时,搜索列表才能保证是标准的.

我们还来看看以下文档init:

返回值:已初始化的NSUserDefaults对象,其参数和注册域已设置.

讨论:此方法不会在搜索列表中放置任何内容.

根据我的理解,这是一个矛盾:搜索列表是空的,或者它包含参数和注册域的条目.

无论如何,我做了一些实验:

NSUserDefaults* standardUserDefaults = [NSUserDefaults standardUserDefaults];
// We get nil, which is expected
NSLog(@"test 1: expecting nil, getting %@", [standardUserDefaults objectForKey:@"foo"]);
NSDictionary* registrationDomainDefaults = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:42] forKey:@"foo"];
[standardUserDefaults registerDefaults:registrationDomainDefaults];
// We get 42, which is expected
NSLog(@"test 2: expecting 42, getting %@", [standardUserDefaults objectForKey:@"foo"]);
[standardUserDefaults removeSuiteNamed:NSRegistrationDomain];
[standardUserDefaults removeVolatileDomainForName:NSRegistrationDomain];
// Here we get 42!
NSLog(@"test 3: expecting nil, getting %@", …
Run Code Online (Sandbox Code Playgroud)

objective-c nsuserdefaults ios

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