小编Bar*_*ark的帖子

Cocoa的依赖注入框架?

Interface Builder可用于Cocoa应用程序中的基本依赖项注入,但是当您不想在NIB文件中实例化对象时,是否有人知道Objective-C/Cocoa的更完整的依赖项注入框架?

编辑

为了澄清,我认识到IB可以用于基本的DI,但我正在寻找一个具有更完整功能的框架,包括单独的生产和测试配置,以及Groovy或Springs.

cocoa dependency-injection objective-c

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

代码有多复杂?

我正在研究可以帮助我编写更小但更复杂的代码的算法.我可以设计一个20行的算法,而不是编写150行if-else语句.问题是很多这些算法都很复杂,需要大量的数学才能理解它们.我也是这里唯一了解他们的人.

为了代码的可维护性,像其他人一样编写代码会更好,还是使用算法更好?

algorithm maintainability cyclomatic-complexity code-complexity

38
推荐指数
11
解决办法
8698
查看次数

couchdb中的唯一约束

是否有任何技术/建议来强制执行独特的约束?是的,我们可以创建唯一的密钥,但是我们无法更改密钥和密钥,而且这种方法也不适用于复杂的验证(单独的独特登录,单独的独立电子邮件等......)

例如,帐户应具有唯一的登录名和电子邮件.从这些字段中导出密钥会导致不一致:

key1: "Account-john@example.net-john", { email: "john@example.net", login: "john"}
key2: "Account-mary@example.net-mary", { email: "mary@example.net", login: "mary"}
Run Code Online (Sandbox Code Playgroud)

看起来不错,但是:

key1: "Account-john@example.net-mary", { email: "john@example.net", login: "mary"}
key2: "Account-mary@example.net-mary", { email: "mary@example.net", login: "mary"}
Run Code Online (Sandbox Code Playgroud)

哎呀,现在我们有2个账号登录:"mary"

couchdb

27
推荐指数
3
解决办法
7808
查看次数

在CentOS 5.5上没有定义rpmbuild%{dist}?

我正在尝试%{dist}在我的RPM规范文件中使用标记来提供Fedora Core(例如fc12),CentOS 5(例如el5)和亚马逊的Linux AMI 之间的特定于分发的依赖关系:

Release: %_svn_revision%{?dist}
Run Code Online (Sandbox Code Playgroud)

# Depencencies
%{?rhel:Requires: ...}
%{?fedora:Requires: ...}
Run Code Online (Sandbox Code Playgroud)

不幸的是,%{dist}似乎没有在CentOS 5.5中定义,并且我没有找到与CentOS 5.5匹配的特定于发行版的条件(我认为el5匹配,但似乎没有).这张票据报告了%{dist}2008年CentOS 的遗失,但自2009年以来一直没有更新.

我如何%{dist}在CentOS中定义以及我应该使用什么条件来匹配CentOS 5?任何RPM大师能指出我正确的方向吗?

centos5 rpm rpmbuild

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

确定Matlab是否有可用的显示

我想questdlg在Matlab应用程序中使用以提示用户反馈.如果没有可用的显示(例如,通过非转发的ssh会话或者如果启动了Matlab -nodisplay),则questdlg失败(见下文).有没有办法确定是否可以从Matlab代码中获得显示,以便我可以回退到基于文本的替代方案?

如果使用该-nodisplay选项启动Matlab ,则qusetdlg生成以下输出并"挂起"Matlab(in uiwait).虽然用户可以使用它Ctl-C来逃避,但没有任何迹象表明这个选项,一个天真的用户可能会得出Matlab真正挂起的结论:

>> questdlg('test','test')
Warning: This functionality is no longer supported under the -nodisplay and
-noFigureWindows startup options. For more information, see "Changes to
-nodisplay and -noFigureWindows Startup Options" in the MATLAB Release Notes.
To view the release note in your system browser, run
web('http://www.mathworks.com/access/helpdesk/help/techdoc/rn/br5ktrh-1.html#br5ktrh-3',
'-browser') 
> In uitools/private/warnfiguredialog at 19
  In dialog at 37
  In questdlg at 117
Warning: This functionality is no longer …
Run Code Online (Sandbox Code Playgroud)

matlab user-interface command-line

20
推荐指数
1
解决办法
3930
查看次数

1小时高清视频的H.264文件大小

我正在寻找对于从HDV转码的1小时H.264编码高清视频(MiniDV磁带上的HD)的预期磁盘文件大小的一个数量级估计.我想存档大约100个小时的这样的内容,并想知道我是在看大硬盘,像Drobo这样的多驱动器单元,还是企业级存储系统.

编辑

为了澄清几个好的评论,我正在开发将使用这个存档视频的软件,并且还将管理从HDV到压缩格式的转码(在OS X上使用QuickTime).这个问题是为了收集硬件要求.视频来自HDV,转码不必实时发生.我不会流式传输视频,所以我正在寻找能够从HDV内容中保留尽可能多的信息的压缩.原始的HDV视频是隔行扫描的,但是如果这有助于文件大小或H264压缩输出的质量,我可以去隔行扫描.

video filesize h.264

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

强制链接到Xcode目标的库的静态链接?

我的Xcode目标链接到hdf5库(使用Link Binary和Libraries构建阶段).libhdf5是使用MacPorts安装的,因此/ opt/local/lib包含库的动态(.dylib)和静态(.a)版本.

构建中的文本输出显示,正如预期的那样,-lhdf5构建的链接步骤中存在a.然而,gcc似乎将动态链接库放在静态上.有没有办法强制gcc(通过编译器开关或Xcode)与libhdf5.a静态链接?

我发现的唯一解决方案是将libhdf5.a复制到项目(或其他)目录并链接到该副本,从而避免在同一位置拥有动态和静态版本.

xcode linker gcc

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

商业或开源Java Swing规则/谓词编辑器小部件?

是否有任何商业或开源Java Swing小部件实现规则/谓词编辑器UI?作为我正在寻找的一个例子,这个图像显示了Cocoa(优秀)NSPredicateEditor用于编辑谓词表达式的UI:

在此输入图像描述

java swing

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

NSManagedObjectModel中的合并模型中的跨模型关系?

如果实体总是在通过合并相关模型创建的NSManagedObjectModel中使用,是否可以建模在单独的NSManagedObjectModel中定义的实体之间的关系?

例如,假设模型1定义Foo具有关系(一对一)toBar的实体,模型2定义Bar具有关系(一对一)的实体toFoo.我将使用-[NSManagedObjectModel mergedModelFromModels]合并模型1和模型2 来构建CoreData堆栈.有没有办法在数据建模器中或以编程方式定义这些关系,以便它们的行为就像它们是模型内关系一样?

macos cocoa core-data nsmanagedobject nsmanagedobjectcontext

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

Qt SIGNAL的体系结构,具有特定于子类的模板化参数类型

我正在使用Qt开发一个科学数据采集应用程序.由于我不是Qt的深度专家,我想从社区建议一些关于以下问题的建筑:

该应用程序支持多个硬件采集接口,但我想在这些接口之上提供通用API.每个接口都有一个样本数据类型和一个数据单位.所以我将每个设备的样本矢量表示std::vector为Boost.Units数量(即std::vector<boost::units::quantity<unit,sample_type> >).我想使用多播式架构,其中每个数据源将新接收的数据广播给一个或多个感兴趣的各方.Qt的信号/插槽机制非常适合这种风格.所以,我希望每个数据源发出一个信号

typedef std::vector<boost::units::quantity<unit,sample_type> > SampleVector
signals:
    void samplesAcquired(SampleVector sampleVector);
Run Code Online (Sandbox Code Playgroud)

适用于该设备的unit和sample_type.由于QObject元对象编译器不支持tempalted 子类,因此似乎没有办法为定义samplesAcquiredSignal的所有数据源都有一个(tempalted)基类.换句话说,下面将不工作:

template<T,U> //sample type and units
class DataSource : public QObject {
  Q_OBJECT
  ...
  public:
    typedef std::vector<boost::units::quantity<U,T> > SampleVector
  signals:
    void samplesAcquired(SampleVector sampleVector);
};
Run Code Online (Sandbox Code Playgroud)

我能够提出的最佳选择是双层方法:

template<T,U> //sample type and units
class IAcquiredSamples {
    public:
        typedef std::vector<boost::units::quantity<U,T> > SampleVector
        virtual shared_ptr<SampleVector> acquiredData(TimeStamp ts, unsigned long nsamples);
};

class DataSource : public QObject {
    ...
    signals:
      void samplesAcquired(TimeStamp ts, unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ templates qt4 signals-slots

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