小编Joc*_*hen的帖子

用Git找到分支点?

我有一个存储库,其中包含分支主服务器和A以及两者之间的大量合并活动.当基于master创建分支A时,如何在我的存储库中找到提交?

我的存储库基本上是这样的:

-- X -- A -- B -- C -- D -- F  (master) 
          \     /   \     /
           \   /     \   /
             G -- H -- I -- J  (branch A)
Run Code Online (Sandbox Code Playgroud)

我正在寻找修订版A,这不是git merge-base (--all)找到的.

git branch

420
推荐指数
11
解决办法
16万
查看次数

在Objective-C中定义协议的类别?

在Objective-C中,我可以向具有类别的现有类添加方法,例如

@interface NSString (MyCategory)
- (BOOL) startsWith: (NSString*) prefix;
@end
Run Code Online (Sandbox Code Playgroud)

是否也可以使用协议来执行此操作,即如果存在NSString协议,则类似于:

@interface <NSString> (MyCategory)
- (BOOL) startsWith: (NSString*) prefix;
@end
Run Code Online (Sandbox Code Playgroud)

我想这样做,因为我对NSObject(该类)有几个扩展,只使用公共NSObject方法,我希望这些扩展也能用于实现协议的对象.

再举一个例子,如果我想编写一个方法logDescription,将对象的描述打印到日志中,该怎么办:

- (void) logDescription {
    NSLog(@"%@", [self description]);
}
Run Code Online (Sandbox Code Playgroud)

我当然可以将此方法添加到NSObject,但是还有其他类不从NSObject继承,我也想要使用此方法,例如NSProxy.由于该方法仅使用协议的公共成员,因此最好将其添加到协议中.

编辑:Java 8现在在接口中使用"虚拟扩展方法":http://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf.这正是我想在Objective-C中做的事情.我没有看到这个问题引起如此多的关注......

此致,Jochen

protocols objective-c categories

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

使用核心数据保存背景?

我有一个基于Core Data的iPhone应用程序,需要在终止时保存1000个托管对象.这需要8秒以上,但是,如果操作系统没有在大约完成时杀死应用程序.6秒

我不想提前保存对象,因为用户必须等待8秒才能显示结果.

是否有可能以某种方式在后台线程中保存对象,同时仍然对主线程中的NSManagedObjectContext进行(只读)访问以显示数据?或者是否可能以某种方式复制托管对象,并将重复项传递给后台线程以进行保存?

为了澄清,这里是应用程序现在发生的事情:我有一个后台线程,在大约1秒内导入1000多个对象.如果我在导入时保存,则需要的时间超过1秒.因此,为了以最小延迟显示那些项目,上下文被切换而不保存到主线程,并且用户尽可能快地获得他的结果.

我现在遇到了如何保存这些对象而无需用户等待8秒的问题.如果我在移交之前保存在后台线程中,则用户必须等待.如果我在移交后保存在前台线程中,则用户必须等待.我现在能看到的唯一两种可能的方法是:

  1. 以某种方式让核心数据在后台进行sqlite访问,同时仍然保持主线程的反应
  2. 将未保存的对象从一个上下文传递到另一个上下文,并保存在后台线程中

这两种方法似乎都不可能(至少根据Core Data文档).那么除了让用户等待更长时间之外没有其他解决方案(并且可能会显示一个漂亮的旋转小时玻璃:-)?

此致,Jochen

performance multithreading core-data

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

一般(非服务器特定的)HTTP服务器测试套件?

我正在寻找一个测试套件来测试HTTP服务器的标准兼容性.因此,测试套件不应该是特定于服务器的,例如Apache的HTTP服务器测试套件.

任何指针都将非常感激.

此致,Jochen

testing automated-tests httpserver

7
推荐指数
1
解决办法
1641
查看次数

看看在一个git命令中合并的内容是什么?

目前,在合并分支之前,我使用以下命令来查看要合并的更改:

base=$(git merge-base other HEAD)
git diff $base other
Run Code Online (Sandbox Code Playgroud)

是否有一个git命令来实现这一目标?

此致,Jochen

git merge

7
推荐指数
1
解决办法
1075
查看次数

在Cocoa/Objective-C中获取方法签名的类型编码?

我需要在Cocoa中使用"signatureWithObjCTypes:"构造一个任意的NSMethodSignature,而没有一个我可以通过"methodSignatureForSelector:"请求签名的对象.

为此,我需要方法编码,例如

c12@0:4@8
Run Code Online (Sandbox Code Playgroud)

对于

(BOOL) isEqual: (id) object
Run Code Online (Sandbox Code Playgroud)

我尝试使用@encode(...)来获取类型编码,但这似乎不适用于函数(它导致未知类型'?').我不想手动编码函数类型,因为它不能在不同的运行时间移植.

还没有声明的方法来获取编码.

还有另一种获取编码的方法吗?

问候,

约亨

macos cocoa objective-c

6
推荐指数
2
解决办法
1877
查看次数

如何在HIbernate HQL中选择对象的类?

如何在HQL中选择对象的类?当我执行以下操作时:

select e.class, e.name from Entity e
Run Code Online (Sandbox Code Playgroud)

Hibernate返回一个Integer(例如[12,"name"])而不是类对象.如何返回Java类,或者至少返回类或实体名称?或者,如果这不可能,我如何将12转换为Java类?

出于性能原因,我无法查询完整的对象,即我无法查询

select e from Entity
Run Code Online (Sandbox Code Playgroud)

此致,Jochen

hibernate hql

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

从Eclipse集合IntList / IntIterable创建一个IntStream和一个Stream &lt;Integer&gt;

我有一个Eclipse Collections IntList。我怎么能够

  1. IntStream从此列表创建Java
  2. Stream<Integer>从此列表创建Java

没有复制元素?

java java-8 java-stream eclipse-collections

6
推荐指数
2
解决办法
157
查看次数

使用Hibernate在文本字段中将List <SomeClass>存储为JSON

我在Hibernate中有类似下面的模型:

class Person {
    String name;
    List<Address> addresses;
}

class Address {
    String street;
    String city;
}
Run Code Online (Sandbox Code Playgroud)

我现在想要将Person持久化到一个表,其中所有人的地址被序列化为JSON字符串并存储在Person表的列中.数据库中的Person记录如下所示:

name: 'Benjamin Franklin', addresses: '[{"street"="...","city"="..."}, {...}]'
Run Code Online (Sandbox Code Playgroud)

有没有办法用Hibernate实现这个目的?

如果地址不是列表,我可以注册UserType来执行序列化.

我也不能使用JPA的@Converter,因为Hibernate实现不会检测到更改,请参阅HHH-10111.

hibernate

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

结合GIT中合并分支的历史?

在我的git存储库中,我将分支"B"合并到"master"中,获得以下结构:

--> A --> B --> C --> D  (branch master)
    |           |  
    F --> G --> H        (branch B)
Run Code Online (Sandbox Code Playgroud)

我现在想要组合分支以获得以下历史记录:

--> A --> B --> F --> G --> H --> D
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

此致,Jochen

git merge branch

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

仅运行一次的代码的iPhone性能测量?

我想测量仅运行一次的iPhone上的代码性能,因此Instrument的CPU采样器工具用途有限,因为它需要多次迭代来收集足够的样本.

是否有一个工具,我可以使用每次调用的每个函数?这确实称为追踪而不是统计抽样?

此致,Jochen

iphone performance xcode instruments

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