0

UILabel に関連する奇妙なクラッシュが発生していますが、使用しているクラッシュ レポート サービスでは、その場所を特定するのにあまり役立ちません。どのコントローラーとどの UILabel が原因なのかわかりません。私が持っている唯一の助けは次のとおりです。

-[__NSCFString set]: unrecognized selector sent to instance 0x1e0958d0
0    CoreFoundation     __exceptionPreprocess + 162
1    libobjc.A.dylib    objc_exception_throw + 30
2    CoreFoundation     -[NSObject(NSObject) doesNotRecognizeSelector:] + 170
3    CoreFoundation     ___forwarding___ + 392
4    CoreFoundation     _CF_forwarding_prep_0 + 24
5    UIKit              -[UILabel _legacy_drawTextInRect:baselineCalculationOnly:] + 2632
6    UIKit              -[UILabel _drawTextInRect:baselineCalculationOnly:] + 166
7    UIKit              -[UILabel drawTextInRect:] + 450
8    UIKit              -[UILabel drawRect:] + 72
9    UIKit              -[UIView(CALayerDelegate) drawLayer:inContext:] + 364
10   QuartzCore         -[CALayer drawInContext:] + 112
11   QuartzCore         CABackingStoreUpdate_ + 1808
12   QuartzCore         CA::Layer::display_() + 980
13   QuartzCore         CA::Layer::display_if_needed(CA::Transaction*) + 202
14   QuartzCore         CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 24
15   QuartzCore         CA::Context::commit_transaction(CA::Transaction*) + 238
16   QuartzCore         CA::Transaction::commit() + 316
17   QuartzCore         CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 60
18   CoreFoundation     __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20
19   CoreFoundation     __CFRunLoopDoObservers + 276
20   CoreFoundation     __CFRunLoopRun + 742
21   CoreFoundation     CFRunLoopRunSpecific + 356
22   CoreFoundation     CFRunLoopRunInMode + 104
23   GraphicsServices   GSEventRunModal + 74
24   UIKit              UIApplicationMain + 1120
25   App                main.m line 14
26   App                start + 40

これで道を見つけることができるものはありますか?事前にサンクス!

4

3 に答える 3

3

これは古い質問ですが、同様の問題に遭遇した人にとっては:

UILabel で attributedText を使用している場合は、設定している属性値のタイプを確認してください。例えば:

NSString* s = @"str";
NSMutableAttributedString* as = [[NSMutableAttributedString alloc] initWithString:s];
[as addAttribute:NSForegroundColorAttributeName value:someObjectThatsNotAUIColor range:NSMakeRange(0, s.length)];

UILabel [__NSCFString set]: unrecognized セレクターがインスタンスに送信されてクラッシュします。

于 2015-07-29T08:27:21.117 に答える
1

これを.hに入れてみることができます:

@interface NSString (extended)
- (void)set;
@end

そしてこれは.mで:

@implementation NSString (extended)
- (void)set
{
    NSLog(@"[NSString set] ??? impossible !!!");
}
@end

次に、このメソッドにブレークポイントを設定します。

于 2012-11-12T15:01:20.920 に答える
0

プロジェクトで " set]" を検索すると、これは非常に一般的でないメソッド名であるため、おそらく既に見つかるでしょう。それでも問題が解決しない場合は、NSLog を使用してすべてのラベル アドレスをコンソールに出力し、原因となっているラベルを特定します。お気に入り

for (UIView *sub in self.subviews)
    if ([sub kindOfClass:[UILabel class]]) NSLog(@"%p", sub);

(コードはテストされていません。必要に応じてスペルを修正してください)

于 2012-11-12T14:52:22.897 に答える