Ошибка: "- [NSCFString sizeWithTextStyle:]: непризнанный селектор" в IPhone SDK
При запуске моего приложения появляется следующая ошибка.
'- [NSCFString sizeWithTextStyle:]: непризнанный селектор
Я не использовал sizeWithTextStyle во всем моем проекте.
Так что может быть неправильно?
Я получаю ошибку в инструкции return pos;
ниже
Код:
(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *pos = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,35.0)];
return pos;
}
Ошибка в консоли:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString sizeWithTextStyle:]: unrecognized selector sent to instance 0x7044b50'
Из-за проблемы с отступом при размещении всего журнала сбоев здесь я помещаю скриншот журнала сбоев
![enter image description here]()
Ответы
Ответ 1
Я думаю, проблема в другом месте, а не в этой строке кода. Объект не может сохранить себя. Отправьте код, где вы используете метод sizeWithTextStyle
У вас есть флаг -all_load в настройках вашей ссылки?
Эта проблема очень много. Вам нужно добавить -all_load и -ObjC к флагам ссылок на приложения.
* EDIT: *
Сбой появляется в строке:
CGSize textSize = [self.text sizeWithTextStyle:textStyle];
in class: CPTextLayer method: sizeToFit
which is called from within class CPTextLayer method initWithText:
-(id)initWithText:(NSString *)newText style:(CPTextStyle *)newStyle
....
[self sizeToFit];
**try to set with iOS 4 and not with 3.1.3 **
Ответ 2
Когда у вас проблемы с управлением памятью (селектора, отправляемые в неправильные экземпляры, являются одним из симптомов проблем управления памятью), вы можете сделать несколько вещей:
- Перечитайте Cocoa правила управления памятью и убедитесь, что вы следите за ними.
- Запустите статический анализатор . Это часто забирает места, где вы пренебрегаете правилами управления памятью.
- Попробуйте использовать
NSZombieEnabled
, чтобы узнать, отправляются ли [и когда] сообщения в нераспределенные экземпляры.
Ответ 3
Я также получаю ту же ошибку, но теперь она решена.
Необходимо сделать простую вещь, установить значение другого флага компоновщика.
ниже Я упоминаю шаги.
Название проекта - Настройка сборки - Другой флаг компоновщика (используйте строку поиска для поиска) - "-ObjC"
Ответ 4
Вы должны изменить свой код, чтобы использовать указатели следующим образом:
UIView *pos = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,35.0)];
return pos;
Обратите внимание на звездочку!
И, конечно, ;
в конце инструкции выделения!