小编Ale*_*fer的帖子

有没有办法在各种平台上本地化应用程序

我们正在开发一个运行在各种平台上的应用程序(Windows,Windows RT,MacOSX,iOS,Android).

问题是如何以简单的方式管理不同平台上的不同本地化.不同平台上的语言文件有各种格式(一些是基于xml的,另一些是简单的键值对,其他是完全疯狂的格式,如MacOS)

我敢肯定,我们不是第一家遇到这个问题的公司,但是我找不到一个易于使用的解决方案,但却有可能拥有一个"数据源",其中字符串以不同的语言收集(最好的)将是翻译的用户界面)然后可以将其导出为不同平台的不同格式.

有没有人有这个问题的解决方案?

问候亚历山大

development-environment localization

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

Spock Test,只检查方法是否被调用而不执行它

在我们的Spock测试中,我们想检查我们的软件中是否选择了正确的路径.但是我们不想测试被调用方法的功能(这是在单独的测试中完成的)

def "Test"() {
    setup:
    service.metaClass.innerMethod = { -> return null }

    when:
    service.doSomething("notexisting@test.com")

    then:
    1 * service.innerMethod(*_)
}
Run Code Online (Sandbox Code Playgroud)

此测试总是失败,因为innerMethod调用了代码并且对方法调用的调用进行了innerMethod计数而不是方法的调用innerMethod

|  Too few invocations for:
    1 * service.innerMethod(*_)   (0 invocations)

Unmatched invocations (ordered by similarity):

    1 * secondService.doSomething()
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得innerMethod的调用并模拟完整的函数?

testing grails spock

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

链接到 Dropbox

我有一个奇怪的问题。我的应用程序应该链接到 Dropbox 并且应该能够上传/下载文件。我有一个名为“连接到 Dropbox”的按钮。按下此按钮后,应用程序应链接到 Dropbox。

- (IBAction)btnLoginClick:(id)sender {
    [[DBSession sharedSession] linkFromController:self];
}
Run Code Online (Sandbox Code Playgroud)

当调用此操作时,一切正常。Dropbox.app 已加载并请求权限等。

如果我将函数更改为如下所示:

- (IBAction)btnLoginClick:(id)sender {
    [[appDelegate getDropboxService] link:self];
}
Run Code Online (Sandbox Code Playgroud)

然后 Dropbox.app 将打开并请求许可,但该应用程序未链接到 Dropbox。

我收到以下错误:

[WARNING] DropboxSDK: error making request to /1/metadata/dropbox - Token is invalid. 
Run Code Online (Sandbox Code Playgroud)

appDelegate 中的函数仅返回 Dropbox 对象,或者如果它为零,则会创建它。Link 函数只调用与第一个代码块中相同的行。

[[DBSession sharedSession] linkFromController:self];
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,也不知道我做错了什么。

问候亚历克斯

objective-c dropbox ios

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

Spring Boot @Async称为Synchronusly

我有一个长期运行的服务方法,我从控制器的休息调用开始.

服务:

@Service
public class TestServiceImpl implements TestService {

    @Override
    public void doSomething() {
        System.out.println("1: " + DateTime.now());
        runLongTask();
        System.out.println("2: " + DateTime.now());

    }

    @Async
    private runLongTask() {
        System.out.println("Test");
        Thread.sleep(10000);
        System.out.println("3: "+ DateTime.now());
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的Application.java中我有

private int poolSize = 10;

private int queueCapacity = 10;

@Bean(name="taskExecutor")
public TaskExecutor taskExecutor() {
    ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
    taskExecutor.setMaxPoolSize(this.poolSize);
    taskExecutor.setQueueCapacity(this.queueCapacity);
    taskExecutor.afterPropertiesSet();
    return new ThreadPoolTaskExecutor();
}
Run Code Online (Sandbox Code Playgroud)

当然,我的Application.java类中有@EnableAsync Annotation

所以我希望输出是这样的:

1: 2015-10-23 11:20:00
2: 2015-10-23 11:20:01
Test
3: 2015-10-23 11:20:11
Run Code Online (Sandbox Code Playgroud)

spring asynchronous spring-boot

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