小编jch*_*tel的帖子

IBDesignable View渲染超时

从第一个XCode 6/iOS 8 beta版本开始,我一直在开发和关闭应用程序几个月.我最喜欢的功能之一是实时渲染,使用@IBDesignableSwift中的标签.

我无法获得单一的东西来渲染.我认为一定是因为它是测试版,所以我决定等待完整版本再次尝试.它仍然失败了.我认为在我的代码中可能存在来自beta版本的工件,所以我废弃它并重新开始.它仍然无法正常工作.当然,这些错误现在更具描述性.

这是我的代码:

import UIKit

@IBDesignable class MyButton : UIButton {

    let UNPRESSED_COLOR = UIColor(red: 221.0/256.0, green: 249.0/256.0, blue: 14.0/256.0, alpha: 1.0)
    let PRESSED_COLOR = UIColor(red: 166.0/256.0, green: 187.0/156.0, blue: 11.0/256.0, alpha: 1.0)
    var buttonColorValue: UIColor

    let TEXT_COLOR = UIColor(red: 72.0/256.0, green: 160.0/256.0, blue: 5.0/256.0, alpha: 1.0)

    required init(coder: NSCoder) {
        self.buttonColorValue = UNPRESSED_COLOR
        super.init(coder: coder)
        // Initialization code
        self.setTitleColor(TEXT_COLOR, forState: UIControlState.Normal)
        self.setTitleColor(TEXT_COLOR, forState: UIControlState.Highlighted)
        self.setTitleColor(TEXT_COLOR, forState: UIControlState.Selected)
    }

    override func touchesBegan(touches: NSSet, withEvent event: …
Run Code Online (Sandbox Code Playgroud)

xcode rendering ios ibdesignable

25
推荐指数
2
解决办法
9855
查看次数

PowerMock:来自父类的存根方法

我正在使用PowerMock,我想知道如何保持子类的所有行为,但是存根super调用可能被子进程覆盖.

说我有这个班:

public class A {
    public String someMethod() {
        return "I don't want to see this value";
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个子类:

public class B extends A {
    @Override
    public String someMethod() {
        return super.someMethod() + ", but I want to see this one";
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将呼叫存根到super.someMethod()

我试过了

@Test
public void test() {
    B spy = PowerMockito.spy(new B());
    PowerMockito.doReturn("value").when((A)spy).someMethod();

    assertEquals("value, but I want to see this one", spi.someMethod());
}
Run Code Online (Sandbox Code Playgroud)

java overriding stub super powermock

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

Google App Engine NDB数据存储区的简单说明

我正在创建一个Google App Engine应用程序(python),我正在学习一般框架.我一直在查看NDB数据存储区的教程和文档,我在概念上遇到了一些困难.我有一个很大的SQL数据库背景,我从来没有使用任何其他类型的数据存储系统,所以我认为这是我遇到麻烦的地方.

我目前的理解是:NDB数据存储区是具有属性(类似于DB字段/列)的实体(类似于DB记录)的集合.使用模型(类似于DB模式)创建实体.每个实体都有一个存储时为其生成的密钥.这是我遇到麻烦的地方,因为这些密钥似乎与SQL DB概念中的任何东西都没有类比.它们看起来类似于表的主键,但它们更紧密地绑定到记录,实际上它们是字段本身.这些NDB密钥不是实体的属性,但被视为与实体分离的对象.如果实体存储在数据存储区中,则可以使用其密钥检索该实体.

我最大的问题之一是你从哪里获得钥匙?我看到的一些文档显示了简单创建密钥的示例.我不明白这一点.似乎存储实体时,该put()方法返回一个可以在以后使用的密钥.那么,如果数据存储区生成原始密钥,您如何才能创建密钥并定义ID​​?

我似乎正在努力的另一件事是带有钥匙的祖先的概念.您可以定义任何类型的父键.是否有预定义的架构?例如,如果我有一个名为"Person"的模型子类,并且我创建了一个类型为"Person"的键,我可以将该键用作任何其他类型的父键吗?就像我想要一个'鞋'键成为'人'键的孩子一样,我是否也可以声明'Car'键是同一个'Person'键的孩子?或者我会在添加"鞋子"键后无法使用?

我真的只是想对来自主要SQL背景的人的NDB数据存储及其API进行简单的解释.

python google-app-engine app-engine-ndb

17
推荐指数
2
解决办法
6931
查看次数

Swift:如何实现用户定义的运行时属性

所以我正在实现一个自定义的"选择器"工具栏,就像iOS相当于单选按钮组(UISegmentedControl).只是一个单杠分为选项.

为此,我创建了一个UIControl被调用SegmentedControl和实现的自定义绘图的子类.但是,有了这样的视图,我需要选项来设置可用的选项.我本来可以从控制器访问该视图viewDidLoad()并在那里设置它们,但我喜欢使用界面构建器来处理那种东西.

所以我发现了一个名为"用户定义的运行时属性"的奇妙之处.我String用键创建了一个属性buttonValues并设置了一个值(这是一个简单的男/女选择器,所以我选择了"男|女").我发现你可以使用该函数访问这些值self.valueForKey()并传入密钥.我创建了一个解析器将该字符串转换为数组,然后添加了该drawRect()函数的功能,以使用该数组来设置按钮.

当我运行该应用程序时,我收到有关"键值编码兼容性"的错误.

所以我查了一下,发现该类必须有支持变量来存储属性.很好,我添加了一个名为的实例变量buttonValues并将其初始化为"".现在应用程序运行正常,但该值从self.valueForKey()函数中清空.我查阅了有关如何设置用户定义的运行时属性的教程,但它们没有详细说明.他们谈论Key Value Coding-compliance,就像我应该知道的那样.

我想知道我必须做些什么才能使这个工作正常,详细的细节.

xcode ios swift

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

有没有办法避免到处使用 AnyPublisher/eraseToAnyPublisher?

我只是在学习如何使用Combine。我有使用 Rx(RxSwift 和 RxJava)的经验,我注意到它非常相似。

然而,完全不同(有点烦人)的一件事是Publisher协议不对其OutputFailure类型使用泛型;它使用关联类型代替。

这意味着我无法指定多态Publisher类型(例如Publisher<Int, Error>)并简单地返回符合Publisher这些类型的任何类型。我需要AnyPublisher<Int, Error>改用,我被迫在eraseToAnyPublisher()所有地方都包括在内。

如果这是唯一的选择,那么我会忍受它。但是,我最近还了解了 Swift 中的不透明类型,我想知道是否可以使用它们来解决这个问题。

有没有办法,让我有,比方说,一个函数,返回some Publisher和使用的具体类型OutputFailure

这似乎是不透明类型的完美案例,但我不知道是否有办法既使用不透明类型又指定关联类型。

我正在想象这样的事情:

func createPublisher() -> some Publisher where Output = Int, Failure = Error {
    return Just(1)
}
Run Code Online (Sandbox Code Playgroud)

swift combine opaque-types

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

如何在 SwiftUI 中应用大于底层视图的覆盖层

我正在尝试创建一个比底层视图更大的覆盖层。

我尝试使用overlay()修改器来执行此操作,但似乎不允许覆盖层延伸超出底层视图的边界。

我意识到,通过将层次结构中的覆盖层拉到具有更大边界的包含视图并使用 a 是ZStack可行的,但这会破坏我想要的流程。我希望叠加层在创建它的较小视图中独立存在(有点像sheet()修改器的工作方式)。

这在 SwiftUI 中可能吗?

ios swift swiftui

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

如何在java中运行时设置ArrayList的泛型类型?

好的,所以我正在建立自己的XML序列化(我知道还有其他的,甚至是一些内置于Java的,但我自己也在学习,因为它非常棒).我有序列化了.我目前正在进行反序列化(读取XML文件并根据文件中的数据组装对象),我遇到了设置泛型类型的问题.经过广泛的研究,我想出了如何获取类的泛型类型,以便我可以在序列化时编写它们,但我不知道如何做到这一点:

Class c = Class.forName(string);
ArrayList<c> list = new ArrayList<c>();
Run Code Online (Sandbox Code Playgroud)

我在C#中看到了一些这方面的答案,但显然C#比Java更通用,我无法用Java复制那里的解决方案.甚至可以用反射来完成这项工作吗?

java generics reflection

8
推荐指数
1
解决办法
7690
查看次数

Chrome开发工具调整错误

我正在制作一个Cordova应用程序,我最近开始尝试在Chrome开发工具中进行测试.我正在模仿触摸事件,而且工作正常.但是在模拟设备屏幕分辨率时,事情开始变得怪异.我现在正在使用iPhone 5屏幕,我使用的设备尺寸是320x568.在Chrome开发工具中,我将设备分辨率设置为320x568.在Chrome中运行应用时,所有内容都应该是应有的两倍.所以我在窗口,文档和屏幕对象上运行宽度和高度操作.

$(window).width()返回640

$(窗口).height()返回1135

$(document).width()返回1280

$(document).height()返回1136

screen.width返回320

screen.height返回568

screen.width和screen.height是正确的.窗口宽度和高度是〜两倍,文档尺寸很奇怪.我不确定他们有什么问题,或者是什么造成了这个问题.我的理解是一切都应该是320x568.我该怎么做才能确保这一点?

screen-resolution google-chrome-devtools

8
推荐指数
0
解决办法
3947
查看次数

如何让Karify,Babel和Coverage在Karma中一起工作?

我越来越厌倦试图让节点库一起正常工作,但这是工作的一部分,所以这里就是这样.

我有一个用于浏览器的ES6应用程序.我的文件有一组单元测试,当我的应用程序是用ES5编写时,我正在调试.我使用Browserify处理导入/导出模块并捆绑我的发行版.这在浏览器中运行应用程序时工作正常.我可以成功浏览源文件和规范文件并运行测试,测试通过.我非常接近这个工作.

唯一的问题是报道.我最接近的是显示karma-browserify生成的文件的覆盖范围,每个文件看起来像这样:

require('/absolute/path/to/the/corresponding/file.js');
Run Code Online (Sandbox Code Playgroud)

并且所有文件的覆盖率显然为100%,因为每个文件只有一行.

这是我的karma.conf.js:

import babelify from 'babelify';
import isparta  from 'isparta';
import paths    from './paths';

var normalizeBrowserName = (browser) => browser.toLowerCase().split(/[ /-]/)[0];

export default function(config) {
    config.set({
        basePath: '..',
        browsers: ['PhantomJS'],
        frameworks: ['browserify', 'jasmine'],
        files: paths.test.files,
        preprocessors: {
            'app/**/*.js': ['browserify', 'sourcemap', 'coverage'],
            [paths.test.testFiles]: ['babel'],
        },
        plugins: [
            'karma-babel-preprocessor',
            'karma-browserify',
            'karma-coverage',
            'karma-jasmine',
            'karma-junit-reporter',
            'karma-phantomjs-launcher',
            'karma-sourcemap-loader',
        ],
        autoWatch: false,
        colors: false,
        loggers: [{ type: 'console' }],
        port: 9876,
        reporters: ['progress', 'dots', 'junit', 'coverage'],
        junitReporter: {
            outputFile: paths.test.resultsOut,
            suite: '', …
Run Code Online (Sandbox Code Playgroud)

code-coverage browserify karma-runner babeljs isparta

8
推荐指数
1
解决办法
3077
查看次数

IntelliJ文件同步在SSHFS上永远需要

我在Mac上进行所有开发,我的文件在远程Linux服务器上.我使用SSHFS来访问文件.当我在本地项目上使用IntelliJ时,我甚至没有注意到文件同步,很可能是因为它可以非常快速地访问文件.但是当我通过SSHFS打开一个项目时,同步需要很长时间,这很痛苦,因为检查取决于同步完成.在同步完成之前,我看不到任何代码分析.

我看到一个解决方案,有人将intellij项目文件移动到本地目录,并让项目指向SSHFS文件,但我宁愿把所有东西放在一个地方.

我需要知道如何加速同步或者即使文件正在同步也要运行检查.

intellij-idea sshfs

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