2011-02-18 49 views
15

运行我的应用程序时出现以下错误。错误:在iPhone SDK中的“ - [NSCFString sizeWithTextStyle:]:无法识别的选择器”

“ - [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'

由于压痕问题,而把整个崩溃日志在这里,我是P.在的Utting崩溃的屏幕截图日志

enter image description here

+0

硬没有一些更多的代码来表示。你能提供你的应用程序崩溃的代码行吗? – 2011-02-18 10:42:46

+0

@Philipp Jaquet:我编辑了我的问题并添加了我的代码。我试过调试代码,发现应用程序崩溃了** SIGNAL ABORT **语句 – 2011-02-18 10:52:52

回答

28

我想,问题是在别的地方,而不是在这行代码。该对象无法保留自己。发布代码,您正在使用的方法sizeWithTextStyle方法

您的链接设置上有-all_load标志吗?

这个问题出现了很多。 您需要将-all_load和-ObjC添加到您的应用程序链接标志。

* 编辑:*

崩溃出现在线路发生:

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 ** 
0

你应该改变你的代码使用指针这样的:

UIView *pos = [[UIView alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,35.0)]; 
    return pos; 

注重星号!

而当然;在分配声明结束!

+0

我试过了,但它仍然崩溃,出现同样的错误。可以做什么? – 2011-02-18 10:57:37

+0

您是否尝试清理您的项目并重新构建?你也可以把崩溃日志?我认为它不会在这个特定的线路上崩溃... – 2011-02-18 10:59:51

3

当你有内存管理问题(选择被发送到错误的实例是内存管理问题一个症状),你可以做很多事情:

  1. 重读Cocoa memory management rules并让sur e你正在关注他们。
  2. 运行static analyser。这往往会挑选你忽略内存管理规则的地方。
  3. 尝试使用NSZombieEnabled来确定是否[以及何时]将消息发送给未分配的实例。
2

我也得到同样的错误,但现在它解决了。

需要做简单的事情,设置其他链接器标志的值。

下面我已经提到了步骤。

项目名称 - 构建设置 - 其他链接器标志(使用搜索栏搜索) - “-ObjC”

相关问题