小编sha*_*ter的帖子

使用XCode 4链接单元测试错误?

我想在我的XCode应用程序中为类编写一些逻辑单元测试.在Xcode 4中,我在Project Navigator中单击了项目名称,然后从底部单击Add Target.我选择了其他的"Cocoa Touch Unit Testing Bundle",给新目标一个"测试"的"产品名称",并完成.

因为我要测试的类是作为现有应用程序目标的一部分编译的,所以对于我的新"测试"目标,我立即转到Build Phases选项卡并将我现有的应用程序目标添加为唯一的目标依赖项.

然后我转到创建的tests.m文件,导入我要测试的类(在它下面ReleasePlanManager,并调用它的一个方法.但链接器失败,出现如下错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ReleasePlanManager", referenced from:
      objc-class-ref in tests.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

所以这个类是找不到的,即使(根据我的理解)添加应用程序目标(它是其中的一部分)应该足够了吗?

任何帮助将不胜感激.谢谢!

xcode linker unit-testing objective-c ocunit

23
推荐指数
1
解决办法
6657
查看次数

在Android中使用预准备语句查询?

在Android中,android.database.sqlite.SQLiteStatement允许我在SQLite中使用预准备语句来避免注入攻击.它的execute方法适用于创建/更新/删除操作,但似乎没有任何返回游标等的查询方法.

现在在iOS中我可以创建类型的预准备语句sqlite3_stmt*并将它们用于查询,所以我知道这不是SQLite的限制.如何在Android中使用预准备语句执行查询?

sql sqlite android prepared-statement

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

在Android上为OkHttp缓存创建目录?

在Android上,我应该如何Filecom.squareup.okhttp.Cache构造函数创建参数?它似乎Context给你很多选择:

  • new File(context.getCacheDir(), "HttpResponseCache")
  • new File(context.getExternalCacheDir(), "HttpResponseCache")
  • context.getDir("HttpResponseCache", Context.MODE_PRIVATE)

只是想知道什么是最佳实践.谢谢!

android caching okhttp

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

无法使用Netty将JSON POST到服务器

我陷入了一个非常非常基本的问题:使用Netty HttpRequestPOST一小部分JSON用于服务器.

一旦频道连接,我就像这样准备请求:

HttpRequest request = new DefaultHttpRequest(
    HttpVersion.HTTP_1_1, HttpMethod.POST, postPath);
request.setHeader(HttpHeaders.Names.CONTENT_TYPE, "application/json");
String json = "{\"foo\":\"bar\"}";
ChannelBuffer buffer = ChannelBuffers.copiedBuffer(json, CharsetUtil.UTF_8);
request.setContent(buffer);

channel.write(request);
System.out.println("sending on channel: " + json);
Run Code Online (Sandbox Code Playgroud)

打印出最后一行{"foo":"bar"},这是格式良好的JSON.

但是,我使用Flask在Python中编写的一个非常简单的echo服务器显示了请求,但它没有body或者json字段,就像正文无法正确解析为JSON一样.

当我只是curl用来发送相同的数据时,echo服务器确实正确地找到并解析JSON:

curl --header "Content-Type: application/json" -d '{"foo":"bar"}' -X POST http://localhost:5000/post_path
Run Code Online (Sandbox Code Playgroud)

我在Netty的管道形成了:

return Channels.pipeline(
    new HttpClientCodec(),
    new MyUpstreamHandler(...));
Run Code Online (Sandbox Code Playgroud)

其中MyUpstreamHandler延长SimpleChannelUpstreamHandler而这也正是试图发送HttpRequest通道连接后.

再一次,我完全失去了.任何帮助将不胜感激.

post json channel netty

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

垂直对齐Graphviz中连接子图的节点

我给Dot添加了以下输入:

digraph G {
  subgraph cluster1 {
    fontsize = 20;
    label = "Group 1";
    A -> B -> C -> D;
    style = "dashed";
  }

  subgraph {
    O [shape=box];
  }

  subgraph cluster2 {
    fontsize = 20;
    label = "Group 2";
    Z -> Y -> X -> W [dir=back];
    style = "dashed";
  }

  D -> O [constraint=false];
  W -> O [constraint=false, dir=back];
}
Run Code Online (Sandbox Code Playgroud)

它产生:

节点O与A和Z对齐的图片

如何对齐节点O以使其具有DW?相同的等级?也就是说,图表看起来像:

A   Z
|   |
B   Y
|   |
C   X …
Run Code Online (Sandbox Code Playgroud)

dot alignment graphviz

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

拖动UITableView时,performSelector无法运行?

我有一个UITableViewController默认值UITableView.我开始用手指慢慢拖动桌子滚动,即不用手指轻弹.每次表格在屏幕上移动时,scrollViewDidScroll都会调用控制器的方法; 在满足我指定某些情况下,这些调用的一个scrollViewDidScroll用途performSelector:withObject:afterDelay安排在稍后的时间有所行动.

但是,我发现在我松开手指之前动作才会执行.例如,如果我将afterDelay参数设置为2秒,但是按住我的手指5秒钟,当我松开手指并且动作执行时间太晚时间为3秒.是否有任何方法允许操作(即更新UI,因此必须在主线程中运行)在手指仍在屏幕上时执行?

谢谢!

iphone cocoa-touch uitableview nsrunloop

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