Я уже задавал другой вопрос об этом проекте, и Трэвис был очень полезен. Предыдущий вопрос
Принимая во внимание этот совет, я пытаюсь создать подкласс для класса C4Shape, я добавил 2 свойства (оба с плавающей запятой) в класс для значений положения X и Y. Причина, по которой я не просто вызываю свойство .center C4Shape, заключается в том, что для добавления их на холст я предпочитаю использовать верхний левый угол вместо центра.
Я пытаюсь написать собственный метод Init для этого нового класса, однако получаю сообщение об ошибке.
Вот пользовательский код инициализации, с которым я работаю:
customShape.m
- (id)initWithColor:(UIColor *)fillColor atX:(float)_xValue atY:(float)_yValue
{
CGRect frame = CGRectMake(_xValue, _yValue, 100, 100);
self = [customShape rect:frame];
self.lineWidth = 0.0f;
self.fillColor = fillColor;
self.xValue = _xValue;
self.yValue = _yValue;
return self;
}
C4WorkSpace.m
-(void)setup {
customShape *testShape = [[customShape alloc]initWithColor:[UIColor greenColor] atX:50.0f atY:50.0f];
[self.canvas addShape:testShape];
}
Я подозреваю, что виновником является self = [customShape rect:frame];
. Это предупреждение, которое я вижу: «Несовместимый тип указателя, назначенный« customShape * _strong »из« C4Shape * »»
Фактическая ошибка, которая возникает, когда я пытаюсь запустить это: «Завершение работы приложения из-за необработанного исключения« NSInvalidArgumentException », причина:« - [C4Shape setXValue:]: нераспознанный селектор отправлен экземпляру 0x9812580 »»
Как и раньше, я создаю кнопки, которые могут содержать значение цвета, и когда вы нажимаете эту кнопку, она отправляет UDP-пакет с этой кнопкой fillColor, а также с IP-адресом iPad.