Расширение массива XCTest в быстром режиме

Я хочу провести модульное тестирование моего Array расширения.

extension Array {
    func itemPassingTest(test: (T) -> Bool) -> T? {
        for item in self {
            if test(item) {
                return item
            }
        }

        return nil
    }
}

В моей цели модульного теста у меня есть

import XCTest
import JLTExample

class JLTExampleTests: XCTestCase {

    func testExtensionArray() {
        let target = [ ["a" : 1], ["a" : 2], ["a" : 3] ]
        let actual = target.itemPassingTest { $0["a"] == 2 }
        XCTAssertNotNil(actual)
    }

}

При сборке выдает ошибку

Undefined symbols for architecture i386:
  "__TFSa15itemPassingTestU__fGSaQ__FFQSbGSqQ_", referenced from:
      __TFC17JLTExampleTests17JLTExampleTests18testExtensionArrayfS0_FT_T_ in JLTExampleTests.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Думаю, я импортирую свое расширение, но не знаю, как импортировать расширение. Я надеялся, что мое расширение будет импортировано вместе с остальным кодом в import JLTExample.


person Jeffery Thomas    schedule 13.06.2014    source источник
comment
связанные: stackoverflow.com/questions/24175596/   -  person Bryan Chen    schedule 13.06.2014
comment
Спасибо, я искал существующий вопрос, но не смог его найти. Я предполагаю, что мой дубликат: обе структуры используют дженерики.   -  person Jeffery Thomas    schedule 13.06.2014
comment
@JefferyThomas да, оказывается, это ошибка компилятора. Компилятор неправильно изменяет имена дженериков. Надеюсь, они исправят это в следующем выпуске.   -  person drewag    schedule 13.06.2014
comment
Ух, я не думаю, что это еще исправлено ...?   -  person aleclarson    schedule 23.09.2014