2011-03-20 52 views
0

在我的应用程序中,每次启动应用程序时都会有一个UIAlertView显示,如果我没有点击'Dismiss'按钮,但是如果我点击'Dismiss'按钮,则应用程序会在约3秒钟后崩溃。什么导致这次事故?

我从控制台的崩溃日志,如果有人知道它为什么崩溃请让我知道

2011-03-20 15:47:05.833 App[8080:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSCFString 0x6e04920> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key mystatsbutton.' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x01a71be9 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x01bc65c2 objc_exception_throw + 47 
    2 CoreFoundation      0x01a71b21 -[NSException raise] + 17 
    3 Foundation       0x001016cf _NSSetUsingKeyValueSetter + 135 
    4 Foundation       0x0010163d -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285 
    5 UIKit        0x005808d6 -[UIRuntimeOutletConnection connect] + 112 
    6 CoreFoundation      0x019e82cf -[NSArray makeObjectsPerformSelector:] + 239 
    7 UIKit        0x0057f2ed -[UINib instantiateWithOwner:options:] + 1041 
    8 UIKit        0x00581081 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168 
    9 UIKit        0x00439a94 -[UIViewController _loadViewFromNibNamed:bundle:] + 70 
    10 UIKit        0x00437709 -[UIViewController loadView] + 120 
    11 UIKit        0x004375e3 -[UIViewController view] + 56 
    12 App       0x000084e2 -[LoadupView endview] + 132 
    13 Foundation       0x0011f7a5 __NSFireTimer + 125 
    14 CoreFoundation      0x01a52fe3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19 
    15 CoreFoundation      0x01a54594 __CFRunLoopDoTimer + 1220 
    16 CoreFoundation      0x019b0cc9 __CFRunLoopRun + 1817 
    17 CoreFoundation      0x019b0240 CFRunLoopRunSpecific + 208 
    18 CoreFoundation      0x019b0161 CFRunLoopRunInMode + 97 
    19 GraphicsServices     0x02349268 GSEventRunModal + 217 
    20 GraphicsServices     0x0234932d GSEventRun + 115 
    21 UIKit        0x0039842e UIApplicationMain + 1160 
    22 App       0x000022de main + 84 
    23 App       0x00002281 start + 53 
) 
terminate called after throwing an instance of 'NSException' 

回答

3

从错误消息看来,您正在从笔尖加载视图控制器,其中笔尖尝试将某物连接到名为mystatsbutton的插座,但该类不包含带该名称的插座。

+1

在那张纸上,他需要检查他的xib以确保一切正确连接。如果他右键点击文件所有者并在任何网点发出警告,这可能是罪魁祸首。他需要删除xib中的绑定或在其头中创建一个IBOutlet。 – 2011-03-20 21:28:02

+0

它虽然,但我仔细检查我有mystatsbutton插座 – 2011-03-20 21:35:48

1

您可以发布您的主要UIViewController的接口和实现?

看起来您还没有将IBOutlet连接到名为mystatsbutton的属性。

+0

我添加了一个@property并将其合成,但仍然没有运气 – 2011-03-20 21:35:19

3

很有可能你的记忆被破坏了 - 你认为是什么知道mystatsbutton恰好是相关程序加载时的NSString,而不是NIB图形中的某个对象。

这可能发生的原因有几个。通常,这意味着您在释放对象之后使用了一个对象。喵,你的参考计数可能是不正确的。尝试运行僵尸启用。

它也可能是你已经分配了一个指针值你不打算的对象。插图:UIView * view = [NSString string];

它也可能不那么明显,比如你忘记删除观察者时被释放。

这些是更常见的原因。这可能是一个好的开始。

删除所有编译器警告(使用高设置)以及静态分析器问题也是一个好主意。

1

CHeck你的XIB,并确保它没有变灰(Xcode 3.x)mystatsbutton。只要确保XIB上没有它的引用。如果有对它的引用,请将其删除,并且您应该很乐意去。

+0

不,我仔细检查,没有什么像在IB。 – 2011-03-20 23:32:00