小编FTL*_*Guy的帖子

你可以覆盖Swift中的扩展名吗?(编译器似乎很困惑!)

我一直在使用Swift中的iOS应用程序(其中大部分都是从Objective-C中移除的).我正在使用Core Data并尝试使用扩展来为我的模型自动生成的类添加功能.我在Objective-C中做的一件事就是在类A的类别中添加一个方法,并在类B(从A派生)的类别中覆盖该方法,我希望在Swift中也这样做.

有一段时间我在我的项目中已经有了以下代码(这只是一个例子),虽然我还没有使用过这个功能,但编译器已经很好地编译了这段代码:

// From CellType.swift -- NOTE: Imports from Foundation and CoreData
@objc(CellType)
class CellType: NSManagedObject {
    @NSManaged var maxUses: NSNumber
    @NSManaged var useCount: NSNumber
    // Other properties removed for brevity
}


// From SwitchCellType.swift -- NOTE: Imports from Foundation and CoreData
@objc(SwitchCellType)
class SwitchCellType: CellType {
    @NSManaged var targetCellXIndex: NSNumber
    @NSManaged var targetCellYIndex: NSNumber
    @NSManaged var targetCellType: CellType
    // Other properties removed for brevity
}


// From CellTypeLogic.swift -- NOTE: Imports from Foundation and CoreData
extension CellType
{ …
Run Code Online (Sandbox Code Playgroud)

overriding swift swift-extensions

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

将WPF PathGeometry拆分为"tiles"

我有一个相当大的PathGeometry(超过100,000个点并且描边但没有填充)为用户显示,但是在任何时候只有一小部分路径可见.为了澄清,路径本身不是预先确定的,而是根据数据创建的.

问题:我想提供非常平滑的平移,以便用户可以探索更大路径的区域.

我有一个可能的解决方案,但我不知道如何解决它.我想使用平铺技术 - 将几何体分割成瓷砖,只加载可见的瓷砖.

那么,如何将仅笔划路径几何体分割为切片.更具体地说,如何确定给定矩形瓦片中存在的路径部分?

我知道我可以使用CombinedGeometry来确定路径几何和矩形之间的相交,但是这将包括矩形的"墙"(将被描边).是否有更好的方法来平铺仅限笔划的PathGeometry?

谢谢!

wpf split tiling pathgeometry

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

GLSL着色器:混合,原始特定行为和丢弃顶点

标准:我正在使用带有着色器的OpenGL(GLSL)并试图保持现代技术(例如,试图远离已弃用的概念).

我的问题,在一般意义上 - 请参阅下面的详细信息 - 如下:

  1. 着色器是否允许您进行自定义混合,以帮助消除使用GL_BLEND时发现的z次序透明度问题?
  2. 有没有办法让着色器知道在没有"手动"传递某种标志的情况下绘制了什么类型的基元?
  3. 着色器是否有办法"忽略"或"丢弃"顶点(特别是在绘制点时)?

背景:我的应用程序绘制与正投影中的线相关的点(顶点在投影中具有不同的深度).我最近才开始在项目中使用着色器(试图摆脱弃用的概念).据我所知,标准混合有alpha测试和深度测试的排序问题:基本上,如果首先绘制更高z级别的"半透明"像素(因此在较低的z级别与已经绘制到该像素的任何颜色混合),然后在该像素处绘制不透明物体,但是在较低的z水平,深度测试防止改变已经为"较高"z水平绘制的像素,从而导致混合问题.要解决此问题,您需要先绘制不透明的项目,然后按升序z顺序绘制半透明项目.我的直觉是着色器不会提供一种(有效的)方式来改变这种行为 - 我错了吗?

此外,为了速度和方便,我将每个顶点的信息(以及几个统一变量)传递给着色器,并使用这些信息来查找需要特别注意的顶点子集.如果没有在应用程序本身中执行类似的逻辑集(并减慢速度),我无法知道先验的是什么子句的vericies.因此,我将所有顶点发送到着色器.但是,当我绘制"点"时,我希望着色器忽略所有不在其确定的子集中的顶点.我想我可以通过将alpha设置为零并在GL上下文中使用alpha函数来获得效果,这将阻止绘制alpha小于0.01的任何东西.但是,着色器是否有更好或更"正确"的glsl方式来说"只是忽略这个顶点"?

opengl shader blending glsl primitive-types

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

iOS CoreData 中的孤立对象

假设我有一个名为 CoreData 的实体类型Player,它purpose与一个名为PlayerPurpose. 为了完整起见,假设我们有一个反比关系PlayerPurposeparentPlayer。考虑以下 swift 代码:

// Assume we already have a player object in a NSManagedObjectContext called context:
player.purpose = NSEntityDescription.insertNewObjectForEntityForName("PlayerPurpose",
                 inManagedObjectContext: context) as PlayerPurpose;

// Later in the code, we set the value to nil (or we could have replaced
// it with another call to insertNewObjectForEntityForName)
player.purpose = nil;
// What happens to the previous playerPurpose object within the Managed Object Context?
Run Code Online (Sandbox Code Playgroud)

我的问题:当数据中的唯一引用设置为 nil(或替换为另一个对象)时,托管对象上下文中的原始 playerPurpose 对象会发生什么情况?

这与关系删除规则并不真正相关,因为我没有明确删除任何对象——我是从任何有意义的关系中删除它,使其成为孤儿。 …

core-data ios swift

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

创建带有非滚动列标题的 CSS 网格

我想使用纯 CSS 网格设计来创建一个类似表格的显示,其中每列的顶行都有一个“标题”单元格,该单元格不会滚动(在 y 中),而网格主体将滚动。

这是一个(非工作的)示例 HTML 作为起点,其中有一些表示我想要的结果的符号:

<style>
    .main-view {
        display: flex;
        flex-direction: column;
        overflow: auto;
        height: 8rem;
    }
    .grid-body {
        display: grid;
        grid-template-columns: max-content max-content 1fr;
        row-gap: 0.1rem;
        column-gap: 0.5rem;
        height: 8rem;
        margin: 0.5rem;
        border: solid 1px red;
        overflow: auto;
    }
    .grid-header {
        display: contents;
    }
    .grid-content {
        display: contents;
    }
    .grid-header label {
        font-weight: bold;
        text-align: center;
        background-color: lightgray;
        border-bottom: solid 1px black;
    }
    .grid-content label {
        text-align: center;
        height: 3rem;
        background-color: lightblue;
    }
</style>
Run Code Online (Sandbox Code Playgroud)
<div class="main-view"> …
Run Code Online (Sandbox Code Playgroud)

html css scroll header css-grid

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