2016-04-20 1 views
-1

Я пытался использовать this swift pod в своем проекте объектива-c. Я получил компилятор для распознавания класса с помощью #import «PIDatePicker-swift.h» в моем объектно-ориентированном файле MyClass.m и смог создать объект PIDatePicker, но the method Apple recommends for conforming to the swift protocol, в данном случае PIDatePickerDelegate, дал мне ошибку : «Нет типа протокола с именем PIDatePickerDelegate».Как мне ответить на быстрый делегат в моем проекте Objective C с использованием Cocoa Pods?

+2

Мой бог ... не только ваш вопрос полностью неясен, но, как указывает ваш самопознание **, вы ЗНАЕТ это дублирование ** [Использование протокола Swift в Objective-C] (http://stackoverflow.com/q/26471898/2792531) ... – nhgrif

+0

Это обычная проблема, с которой пользователи Cocoa pods сталкиваются при смешивании кода Swift и Objective C. Это не совсем дубликат, потому что я использую Pod, и ответ не связан. Поэтому я решил, что новый вопрос оправдан; поэтому я добавил: «Однако, если вы работаете с быстрым подкастом, как и я, не всегда ясно, что делать, и поэтому я отправляю это для любых других, которые могут быть в одном и том же исправлении» для моего ответ. – ManInTheArena

ответ

-1

Исправление для этого добавлял следующий @objc тег в определении быстрого протокола файл, в этом случае, PIDatePickerDelegate.swift:

public protocol PIDatePickerDelegate { 
    func pickerView(pickerView: PIDatePicker, didSelectRow row: Int, inComponent component: Int) 
} 

Просто изменилось выше:

@objc public protocol PIDatePickerDelegate { 
    func pickerView(pickerView: PIDatePicker, didSelectRow row: Int, inComponent component: Int) 
} 

Это также ответил здесь:

Using a Swift protocol in Objective-C

Однако, если вы работаете с быстрым подкастом, как и я, не всегда ясно, что делать, и поэтому я отправляю это для других, которые могут быть в одном и том же исправлении. The troubleshooting section of Apple's Using Swift with Objective-C документов также имеет следующую строку:

  • быть доступным и полезным в Objective-C, быстротекущей класс должен быть потомком класса Objective-C или он должен быть отмечен @objc.
Смежные вопросы