Webpack не знает, чтобы разрешить файлы .jsx
неявно. Вы можете указать расширение файла в своем приложении (import App from './containers/App.jsx';
). Тест текущего загрузчика говорит о том, что вы используете загрузчик babel, когда вы явно импортируете файл с расширением jsx.
или вы можете включить .jsx
в расширения, которые веб-пакет должен разрешить без явного объявления:
module.exports = {
entry: './index.jsx',
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}]
},
resolve: {
extensions: ['', '.js', '.jsx'],
}
};
Для Webpack 2 оставьте пустое расширение.
resolve: {
extensions: ['.js', '.jsx']
}
UITextView
определяет свой делегат
как
@property(nonatomic, assign) id<UITextViewDelegate> delegate
, что означает, что он соответствует UITextViewDelegate
, и это проверяет компилятор. Если вы хотите использовать новый протокол, вам необходимо переопределить делегат
, чтобы он соответствовал вашему протоколу:
@interface MySubClass : UITextView {
}
@property(nonatomic, assign) id<MySubClassDelegate> delegate
@end
Компилятор больше не должен выдавать предупреждений.
[Обновление от fess]
... Этим компилятор предупредит, что аксессоры должны быть реализованы ... [Я реализовал это:]
-(void) setDelegate:(id<MySubClassDelegate>) delegate {
[super setDelegate: delegate];
}
- (id) delegate {
return [super delegate];
}
"
[Мое обновление]
Я считаю, что это должно сработать, если вы только сделаете объявление @dynamic
вместо повторной реализации метода, поскольку реализация уже существует:
@dynamic delegate;
Учитывая, что MySubClassMessage: не является обязательным, у вас должна быть возможность просто сделать простое:
- (void) SomeMethod {
SEL delegateSelector = @selector(MySubClassMessage:);
if ([self.delegate respondsToSelector:delegateSelector]) {
[self.delegate performSelector:delegateSelector withObject:self];
}
}
Компилятор должен по-прежнему проверять, соответствует ли реализующий класс вашему протоколу (или, по крайней мере, утверждать, что в заголовок), и вы не получите описанную вами ошибку.