小编Big*_*her的帖子

测试数据文件以进行单元测试的路径

我目前在VS 2008中使用标准的Microsoft Unit Test套件.还安装了ReSharper 4.5.我的单元测试依赖于预加载数据文件的TestInitialize方法.此测试数据文件的路径将根据我是否使用标准Ctrl-R + Ctrl-T命令与Resharper单元测试执行命令从VS 2008中运行单元测试而有所不同.

我的TestInitialize方法如何知道单元测试数据文件的正确路径?

更新:

测试数据足够大,我不想将其推入字符串,所以更喜欢将其保存为外部文件.我的测试项目的文件结构是使用MVC应用程序创建的标准单元测试项目的文件结构.在测试项目的根目录下,创建了一个名为"测试数据"的新文件夹.这是我想要访问的文件夹,无论测试运行器如何.

c# resharper unit-testing

54
推荐指数
2
解决办法
5万
查看次数

如何在VS 2010中安装WTL 8.0 Project Wizards?

我已经下载了WTL 8.0软件包并且找到了安装App Wizards不支持VS 2010的脚本.

有谁知道更新脚本以支持VS 2010中的安装?

谢谢!

wtl visual-studio-2010 visual-studio

5
推荐指数
2
解决办法
6850
查看次数

Objective-C Accessor方法和Aut​​orelease的使用

我一直在阅读关于内存管理的苹果文档,现在对于推荐的Accessors实现感到有些困惑.Apple引用了3种实现访问器的方法.

技术1

我已经复制了第一种反映出来的技术的代码:"Getter在返回之前保留并自动释放值; setter释放旧值并保留(或复制)新值." 第一种技术被认为更加强大,但是经常被称为吸气剂会受到性能损失.

- (NSString*) title {
    return [[title retain] autorelease];
}

- (void) setTitle: (NSString*) newTitle {
    if (title != newTitle) {
        [title release];
        title = [newTitle retain]; // Or copy, depending on your needs.
    }
}
Run Code Online (Sandbox Code Playgroud)

跳绳技术2

技术3

对于经常被称为setter和getter的人来说,第三种技术更好.这也是我一直遵循的方法.

- (NSString*) title {
    return title;
}

- (void) setTitle: (NSString*) newTitle {
    if (newTitle != title) {
        [title release];
        title = [newTitle retain]; // Or copy, depending on your needs.
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. (技术1)即使不指向任何东西,setter也会首先释放现有值.这将向nil发送一条消息,我理解在Objective-C中支持但仍然看起来很奇怪.我理解正确吗?

  2. (技术1)为什么保留堆叠在自动释放内?

  3. (技术1)使用getter的调用者是否在完成对象后调用release? …

memory-management objective-c accessor

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

从方法返回NSString时的内存管理和所有权

我正在Objective-C中编写一个方法,它返回一个基于NSMutableArray输入的字符串.我不打算让调用者修改字符串,但也不小心.该方法的当前签名读作:

- (NSMutableString *) generateString:(NSMutableArray *)myArray
Run Code Online (Sandbox Code Playgroud)

该项目目前是一个命令行基础工具,以学习绳索,但这最终将最终在iPhone应用程序中.

我的问题是:

  1. 返回NSString是否更为谨慎?

2)当我返回NSMutableString时,我应该使用autorelease吗?如果你建议我返回一个NSString,它如何修改返回它?

3)如果我还想返回一个错误对象来识别是否发生了错误,可能是一个枚举和一个字符串,在这种情况下所有权是如何工作的?该方法不称为alloc,new或copy,所以调用者如何知道?除了上面方法中的字符串之外,我如何返回分配的错误对象?

谢谢!

cocoa memory-management objective-c nsstring nsmutablestring

0
推荐指数
1
解决办法
422
查看次数