小编Tom*_*mmy的帖子

接口vs C++中依赖注入的模板

为了能够对我的C++代码进行单元测试,我通常会将测试类的构造函数传递给一个或多个对象,这些对象可以是"生产代码"或伪造/模拟对象(让我们调用这些注入对象).我这样做了

  1. 创建"生产代码"类和伪/模拟类继承的接口.
  2. 使测试中的类成为一个模板类,它将注入对象的类型作为模板参数,并将注入对象的实例作为构造函数的参数.

一些随意的想法:

  • 在我们有概念(C++ 0x)之前,只有文档和参数命名会暗示提供被测试类的内容(使用模板时).
  • 并不总是可以为遗留代码创建接口
  • 基本上只创建接口以便能够进行依赖注入
  • 以同样的方式:模拟被测试的类只是为了启用依赖注入

你的想法是什么?这个问题还有其他解决方案吗?

c++ unit-testing mocking

24
推荐指数
2
解决办法
5847
查看次数

Objective C ceil返回错误的值

NSLog(@"CEIL %f",ceil(2/3));
Run Code Online (Sandbox Code Playgroud)

应该返回1.但是,它显示:

CEIL 0.000000
Run Code Online (Sandbox Code Playgroud)

为什么以及如何解决这个问题?我使用ceil([myNSArray count]/3),当数组计数为2时,它返回0.

ios

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

Cocoapods框架无法在另一个cocoapods框架中找到文件

我正在使用通过Cocoapods安装的库,它依赖于AFNetworking作为链接框架.安装库后,我的项目将无法编译,因为无法找到导入的AFNetworking文件.

在此输入图像描述

但是,似乎模块导致了问题,因为如果我更改导入:

#import "AFHTTPRequestOperationManager.h"

#import <AFNetworking/AFHTTPRequestOperationManager.h>

..错误消失了.我宁愿不去更改这些链接库中的代码,那么如何让我的库成功找到AFNetworking文件呢?

编辑这是我的podfile:

# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '8.0'

target 'Motospot' do

    pod 'Alamofire', '~> 1.2'
    pod 'youtube-ios-player-helper', '~> 0.1.1'
    pod 'BDBOAuth1Manager'

end

target 'MotospotTests' do

end
Run Code Online (Sandbox Code Playgroud)

xcode ios cocoapods swift

14
推荐指数
2
解决办法
5553
查看次数

"16位整数PCM数据"是指它是有符号还是无符号?

我正在使用FMOD开发一个应用程序,当用户单击Next/Prev按钮时,该应用程序将立即从包含语音的MP3文件开始播放下一个/上一个句子的录音.我通过调用Sound :: lock获得了mp3文件的PCM数据,但是Sound :: getFormat只告诉我它是"16位整数PCM数据",不知道它是签名还是未签名.我怎么知道的?

互联网上的一些文章称,几乎所有16位整数PCM数据都已签名.如果我的PCM数据被签名,那么什么范围的值表示静默,那些值接近0(例如-10~10),或接近-32768(例如-32768~-32750)?如果它们是接近0的值,这是否意味着相对数字之间的含义没有区别,如-32767和32767?

我需要检测足够长的静音,例如长于500毫秒,以确定语音中每个句子的开始位置.

谁能给我任何关于如何检测句子之间的沉默的建议?

audio signal-processing pcm fmod

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

为什么pip说"没有名为commands.install的模块"?

我已经安装了pip,我已将cmd中的目录移动到C:\ Python27\Scripts.我试试这段代码:' pip install whatever.whl'


它在随机代码的底部说(看起来像python):


' ImportError: No module named commands.install'发生了什么事?

python windows install pygame pip

6
推荐指数
1
解决办法
8173
查看次数

jvm中的所有指令都是原子的吗?

我记得以前在某处读过,但现在找不到官方文档了。

jvm中的所有指令都是原子的吗?

喜欢:

iinc
iload
aload
Run Code Online (Sandbox Code Playgroud)

都是原子的?

jvm

5
推荐指数
1
解决办法
457
查看次数

Metal会在非A7设备上运行吗?(例如iPhone 5或iPad Mini(不是视网膜))

Metal会在非A7设备上运行吗?(例如iPhone 5或iPad Mini(不是视网膜)).如果没有,是否只能为Metal支持的设备创建应用程序?

iphone ipad ios ios8 metal

5
推荐指数
1
解决办法
4170
查看次数

如何从JSON获取数据?

我收到JSON格式的回复,过去从未解析过,所以有人可以帮我理解这一点.这是我得到的Json回复:

Twitter响应:

(
    {
        contributors = "<null>";
        coordinates = "<null>";
        "created_at" = "Tue Nov 29 15:48:35 +0000 2011";
        entities =         {
            hashtags =             (
            );
            media =             (
                                {
                    "display_url" = "pic.twitter.com/650E1WRY";
                    "expanded_url" = "http://twitter.com/ashu1702/status/141544088850796545/photo/1";
                    id = 141544088854990848;
                    "id_str" = 141544088854990848;
                    indices =                     (
                        22,
                        42
                    );
                    "media_url" = "http://p.twimg.com/AfbdmVBCEAAPJvT.jpg";
                    "media_url_https" = "https://p.twimg.com/AfbdmVBCEAAPJvT.jpg";
                    sizes =                     {
                        large =                         {
                            h = 279;
                            resize = fit;
                            w = 215;
                        };
                        medium =                         {
                            h = 279;
                            resize = fit;
                            w = …
Run Code Online (Sandbox Code Playgroud)

iphone json objective-c

4
推荐指数
1
解决办法
3830
查看次数

Swift中SQLite项目中的UnsafePointer <Uint8>问题

我们正在使用Swift在iOS中实现SQLite,而不使用包装器或Objective-C桥接.一切正常,除了在进行查询和提取结果时.问题是UnsafePointer<UInt8>从Swite中的SQLite返回的,如下所示:

var querySQL = "SELECT address, phone FROM CONTACTS WHERE NAME = 'myName'"
var cQuery = querySQL.cStringUsingEncoding(NSUTF8StringEncoding)
var statement: COpaquePointer = nil
if sqlite3_prepare_v2(contactsDB, cQuery!, -1, &statement, nil) == SQLITE_OK {
   if sqlite3_step(statement) == SQLITE_ROW {
   var address : UnsafePointer<UInt8> = sqlite3_column_text(statement, 0)
   var data = NSData(bytes: address, length: 10)
   var string = NSString(data: data, encoding: NSUTF8StringEncoding)
   println(string)
Run Code Online (Sandbox Code Playgroud)

如您所见,如果我们知道对象的长度(在本例中为10),我们可以将指针转换为String

为了深入研究这个问题,我有以下例子

let pointerFromString: UnsafePointer<Int8> = "xyz".cStringUsingEncoding(NSUTF8StringEncoding)
let stringFromPointer = String.fromCString(anotherPointerFromString_Int8)                    println(stringFromPointer!)
Run Code Online (Sandbox Code Playgroud)

鉴于这CChar是别名Int8,我可以将a转换StringUnsafePointer<Int8> …

sqlite pointers ios swift

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

glDeleteShader - 订单无关紧要?

在OpenGL中,顺序glAttachShader是无关紧要的,这是一样的glDeleteShader吗?我会说是的,如果有一些动态内存分配正在进行,但也许这在opengl上下文中处理不同.

c++ opengl

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

在C中将数组从函数返回到main?

将数组返回main的方法是什么?我知道数组已经创建但是无法返回它,所以当我尝试使用它时会说"分配中的不兼容类型"?

int* get_array(){

      int i = 0, j;
      int *array = malloc(6);
      srand(time(NULL));

      while (i != 6) 
      {
            int random_number = ((rand() % 49) + 1);
            int ok = 1; 

            for (j = 0 ; ok && j != i ; j++)
            {
                ok &= (random_number != array[j]);
            }

            if (ok) 
            {
                array[i++] = random_number;
            }
      }
      return array;
} 
Run Code Online (Sandbox Code Playgroud)

然后从主要调用它: -

int main()
{

      int i;
      int* get_lotto_numbers();
      int numbers[6];

      numbers = get_lotto_numbers();

      for(i = 0; i < 6; …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers return function

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

我不了解有关设置值的Objective-c文档的一部分

这是文件说的内容.这是接口文件中的声明.

@interface XYZPerson : NSObject

@property NSString *firstName;

@property NSString *lastName;

@end
Run Code Online (Sandbox Code Playgroud)

接下来它说:使用访问器方法来获取或设置属性值

您可以通过访问器方法访问或设置对象的属性:

NSString *firstName = [somePerson firstName];

[somePerson setFirstName:@"Johnny"];
Run Code Online (Sandbox Code Playgroud)

我不明白"somePerson"指的是什么.它从哪里来的?

objective-c

-1
推荐指数
1
解决办法
36
查看次数