Быстрая компиляция — ошибка, выдающая метаданные класса

#ios #swift #game-engine

#iOS #swift #игровой движок

Вопрос:

 import Foundation

class ObjectPool <T:GameEntity> : NSObject
{
    var counter = 0
    let objects:T[]


    init( poolCapacity:Int )
    {
        objects = Array<T>(count: poolCapacity, repeatedValue: T())
        super.init()
    }

    func getObject() -> T?
    {

        if let counterObject = self.objects[counter] as T? {
            if !counterObject.alive {
                counter  
                return counterObject
            }
        }

        for (index, poolable) in enumerate(self.objects) {
            if !poolable.alive {
                counter = index   1

                poolable.alive = true
                return poolable
            }
        }

        NSException(name: "Empty Pool", reason: "Trying to get an object from a pool that is drained", userInfo: nil).raise()

        return nil
    }

    func returnObject( pooledObject:T )
    {
        pooledObject.alive = false
    }

    func eachAlive ( lamda:(T -> Void) )
    {
        for poolable in self.objects {
            if poolable.alive {
                lamda(poolable)
            }
        }
    }


}
  

Я написал некоторый код для создания пула объектов в Swift. ‘GameEntity’ — это просто класс, который подкласс SKSpriteNode и имеет свойство ‘alive’. Мне интересно, есть ли какие-либо большие проблемы в коде, который я написал, или это проблема компилятора. Ошибка компилятора приведена ниже:

 1.  While emitting IR for source file /Users/joey.clover/Documents/Personal Projects/Flappy Bird/Flappy Bird/Utils/ObjectPool.swift
2.  While emitting class metadata for 'ObjectPool' at /Users/joey.clover/Documents/Personal Projects/Flappy Bird/Flappy Bird/Utils/ObjectPool.swift:11:1
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
  

Спасибо, Джоуи.

Комментарии:

1. Это не столько ошибка компилятора, сколько сбой компилятора. Вы должны открыть радар с кодом и журналом сбоев.

2. Как мне открыть радар?

3. bugreport.apple.com

4. Вы импортировали sprike kit в свой проект?

5. Спасибо, Брайан и Гохан, я импортирую его в класс GameEntity, если это что-нибудь значит?