小编Bad*_*Cat的帖子

Swift:使用空字段创建可变数组

我想在Swift中创建一个类型UIImageView但最初应该有一些空字段(nil)作为占位符的数组.那可能吗?在Objective-C中创建很容易,例如:

[self.pageViews addObject:[NSNull null]]
Run Code Online (Sandbox Code Playgroud)

在Swift中我定义了这样的数组:

var pageViews:Array<UIImageView> = [];

override func viewDidLoad()
{
    super.viewDidLoad();

    for i in 0 ..< 5
    {
        pageViews.append(nil);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然这不起作用.如果我用数组定义数组

var pageViews:Array<UIImageView!> = [];
Run Code Online (Sandbox Code Playgroud)

我不会得到编译时错误,但应用程序抛出致命错误:

致命错误:尝试桥接包含nil的隐式解包的可选项

这个问题有什么好的解决方法吗?

arrays generics cocoa-touch ios swift

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

使用Swift Closure的NSIndexSet.enumerateIndexesUsingBlock

我正在编写一种方法将数据从表视图复制到粘贴板但是如果选择了任何行,它应该只复制选定行中的数据,所以我需要迭代索引集...

func createExportText(fromArrayController:NSArrayController) -> String
{
    var indexSet = fromArrayController.selectionIndexes;
    /* None were selected, so process them all! */
    if (indexSet.count == 0)
    {
        indexSet = NSIndexSet(indexesInRange: NSMakeRange(0, fromArrayController.arrangedObjects.count));
    }

    var rows = "";
    indexSet.enumerateIndexesUsingBlock
    {
        // What code goes here?
    }

    return rows;
}
Run Code Online (Sandbox Code Playgroud)

我在解释方法签名时遇到了一些麻烦,我应该如何编写闭包代码.我得到的错误信息也不是特别清楚(Cannot invoke 'enumerateIndexesUsingBlock' with an argument list of type '((_, _) -> Int)').有人可以帮帮我吗?

编辑:

工作方式:

func createExportText(fromArrayController:NSArrayController) -> String
{
    var rows = "";
    var indexSet = fromArrayController.selectionIndexes;
    let objects = (fromArrayController.arrangedObjects as! …
Run Code Online (Sandbox Code Playgroud)

iteration macos cocoa nsindexset swift

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

Jenkins PipelineTriggers选项崩溃

尝试在Jenkins声明性管道脚本中使用cron触发的版本:

options
{
    disableConcurrentBuilds()
    timeout(time: 1, unit: 'HOURS')
    buildDiscarder(logRotator(numToKeepStr: '5'))
    pipelineTriggers([cron('H 0 * * *')])
}
Run Code Online (Sandbox Code Playgroud)

运行时,抛出此异常:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 30: Invalid option type "pipelineTriggers". Valid option types: [buildDiscarder, catchError, disableConcurrentBuilds, overrideIndexTriggers, retry, script, skipDefaultCheckout, skipStagesAfterUnstable, timeout, timestamps, waitUntil, withContext, withCredentials, withEnv, ws] @ line 30, column 3.
        pipelineTriggers([cron('H 0 * * *')])
     ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:67)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:430)
    at …
Run Code Online (Sandbox Code Playgroud)

cron groovy continuous-integration jenkins

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

核心数据:"无法在此模型中找到名为...的实体"(仅限在设备上)

核心数据有一个奇怪的问题......

我有一个模型,我将其他几个NSManagedObjects设置为另一个NSManagedObject(To One关系)的一部分.它在模拟器中运行良好,但是当我在设备上测试它崩溃时,给我这个错误:

2014-08-10 03:14:13.292 Prologue [4099:60b] *由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'+ entityForName:无法在此模型中找到名为'BookContents'的实体.*第一掷调用堆栈:(0x184ad3100 0x1914b01fc 0x1847f2f84 0x1000794ec 0x10007846c 0x100068250 0x10006adf0 0x10006ae54 0x187ad10b0 0x187ad1044 0x187aba520 0x187ad0a44 0x187ad06d8 0x187acb370 0x187a9cb50 0x187a9ac40 0x184a937f4 0x184a92b50 0x184a90de8 0x1849d1dd0 0x18a671c0c 0x187b02fc4 0x100072fd4 0x100073014 0x191aa3aa0)的libc ++ abi.dylib:与类型NSException的未捕获的异常终止

BookContents是一个与我的主数据模型对象Book有关的模型.这是创建它的代码:

func createBookModel() -> Book
{
    var book:Book = createFromEntity("Book") as Book;
    if (book != nil)
    {
        book.title = "New Book";
        book.bookContents = createFromEntity("BookContents") as BookContents;
        saveContext();
    }
    else
    {
        Log.error("Failed to create Book.");
    }
    return book;
}

func createFromEntity(entityName:String) -> NSManagedObject
{
    var …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-data ios swift

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

禁用 UIScrollView 手势

我创建了一个自定义滚动视图类,它使用两个子视图,可以滚动(启用分页)以在屏幕上显示当前视图。

我想要做的是更改它,以便第二个视图仅在点击特定按钮时滚动。因此,不应允许用户使用拖动手势在第二个视图中滚动。

如何暂时禁用滚动视图上的拖动手势?(暂时是因为当第二个视图被滚动时,它应该被重新激活,以便用户可以将该视图拖出屏幕)。

感谢您的任何提示!

objective-c uiscrollview gesture ios swift

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

带有泛型的 Unity3D GetComponent

我想编写一个 util 方法来获取给定游戏对象上的组件。它看起来像这样......

    public static MonoBehaviour FindAndAssignComponent<T>(string name)
    {
        GameObject g = GameObject.Find(name);
        if (g != null) return g.GetComponent<T>();
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

问题出在GetComponent!我如何使用泛型T来理解它?<typeof(T)>不起作用,也不行GetComponent(T)GetComponent(typeof(T))

c# generics unity-game-engine

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

通过脚本添加 MeshFilter 网格?

您如何通过 C# 添加具有特定网格的 MeshFilter 组件,比如 Capsule 网格(来自 Unity 默认库资源)?我这么远...

GameObject obj = new GameObject("Player");
MeshFilter meshFilter = obj.AddComponent<MeshFilter>();
meshFilter.mesh = 
Run Code Online (Sandbox Code Playgroud)

Capsule 和其他原始网格位于 Unity 默认资源中,我知道如何在编辑器中分配它,但是如何在 C# 中获得一个?显然, Instantiaion 不可用,因为它是一个库资产。

更新

我会认为这会起作用:

meshFilter.mesh = Resources.Load<Mesh>("Capsule");
Run Code Online (Sandbox Code Playgroud)

但是之后在编辑器组件检查器中网格仍然为空。

c# mesh unity-game-engine

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

SQLite-根据特定的计算总和过滤记录

我得到了一张表格,其中包含数量不等的记录,这些记录包含人员,人员的体重以及确定应按哪个顺序选择人员的顺序值...

create table line (
      id int not null PRIMARY KEY,
      name varchar(255) not null,
      weight int not null,
      turn int unique not null,
      check (weight > 0)
  );
Run Code Online (Sandbox Code Playgroud)

我必须从表格中检索最近的记录,当一起计算人的体重时,该记录不超过1000磅order

例如,如果表是

id | name                | weight  | order |
---+---------------------+---------+-------+
5  | Mark                |   250   |   1   |
4  | James               |   175   |   5   |
3  | John                |   350   |   2   |
6  | James               |   400   |   3   |
1  | Rick                |   500   | …
Run Code Online (Sandbox Code Playgroud)

sql sqlite

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

具有最初无效字段的结构

我正在尝试创建一个包含两个字段的结构,我可以在创建后直接检查它是否有效/无效.因为这两个字段是0默认的,所以我想检查它们是否有效,如果它们是-1...

public struct InputCodeSet
{
    public int primary;
    public int secondary;


    public InputCodeSet(int primary = -1, int secondary = -1)
    {
        this.primary = primary;
        this.secondary = secondary;
    }

    public bool IsValid
    {
        get { return primary > -1 && primary < InputCode.MAX && secondary > -1 && secondary < InputCode.MAX; }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,测试任何创建的InputCodeSet结果在创建后IsValid始终为true,即使未设置主要或辅助也是如此.显然,可选构造函数参数中的默认值被忽略?有什么其他方法让这个工作?我想主要使用对象初始化器语法...

var inputCode1 = new InputCodeSet { primary = InputCode.55 }
Run Code Online (Sandbox Code Playgroud)

c# struct

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

从脚本创建事件系统

我正在编写一个 Unity 编辑器脚本,需要确保 (UI) 事件系统存在,所以我想创建一个,如果它不存在的话。但是在尝试将其导入脚本时无法找到EventSystem类和StandaloneInputModule类。这是怎么回事?我也找不到关于这个问题的任何其他信息。

events event-handling game-engine unity-game-engine

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