2015-12-18 2 views
1

Кажется, в xcode есть ошибка, которая предотвращает ее из классов «распознавания», содержащих общие объявления.Не удается подключить розетки к общему классу

Возьмите этот пример объявление класса:

@interface ABEBaseParseQueryViewController<CellType: UITableViewCell *, Object: id> : UIViewController <UITableViewDelegate, ABEDatasourceResponder> 

Если я вручную впечатать декларацию выпускную внутри файла заголовка:

@property (weak, nonatomic) IBOutlet UITextField *titleField; 

точка на боковой панели, что означает, что это unconected розетка не появляется. Кроме того, при попытке установить владельца файла в этом классе в IB, я не получаю никакого автозаполнения, так как это похоже на то, что xcode вообще не распознает класс. Я не могу подключать выходы к файлу, даже если я вручную установил владельца файла.

Эта проблема исправлена, если я удаляю общее объявление из класса. (круг в боковой панели снова появляется, и я могу снова подключить розетки)

У кого-нибудь еще была эта проблема? На данный момент я могу просто удалить общую декларацию, подключить выходы и вернуть ее, но это кажется плохим обходным решением.

Это xcode 7.2.

ответ

1

Вы абсолютно правы. Как только у вас есть общий (как в данном примере):

ABEBaseParseQueryViewController<CellType: UITableViewCell *, Object: id> 

, что класс больше не является вариантом для пользовательского класса в Interface Builder.

Вы можете обойти это ограничение, однако сначала создать и комплектации:

ABEBaseParseQueryViewController 

Pick ABEBaseParseQueryViewController before using generics

в Interface Builder, и позже меняющегося ваши .h стать

ABEBaseParseQueryViewController<CellType: UITableViewCell *, Object: id> 

Обратите внимание, что вы уже не можете выбрать этот общий Пользовательский класс в Интерфейс Builder в настоящее время.

+0

Любые радары, чтобы обмануть? – hhanesand

Смежные вопросы