2017-01-11 6 views
0

に私はiOSの7クラッシュ[NSCalendar calendarWithIdentifier:]:「+ [NSCalendar calendarWithIdentifier IOS 7

に私のアプリの実行***終了キャッチされない例外が原因アプリ 'NSInvalidArgumentException'、理由のアプリがクラッシュしました:]:認識されていないセレクタが

- (instancetype)initWithLocale:(NSLocale *)locale andFirstWeekday:(NSUInteger)firstWeekday{ 
    if (self = [super init]){ 
     _calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]; 
     _calendar.timeZone = [NSTimeZone localTimeZone]; 
     _calendar.locale = locale; 
     _calendar.firstWeekday = firstWeekday; 
    } 
    return self; 
} 

誰かの男はそのPRを解決するために私を助けてくださいクラス0x3b67718c」私は私のプロジェクトにコードを使用してい

をに送信しました私の人生で時間を節約することができます。ありがとう。

+1

使用 '_calendar = [[NSCalendarのalloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];'あなたは方法があるのiOS <8.0で実行されている可能性がありますiOS8以降で利用可能です。 – iphonic

+1

'+ calendarWithIdentifier:'はiOS 8.0以降で利用できます。そのため、iOS7では '-initWithCalendarIdentifier:'が利用可能ですが、iOS7ではクラッシュします。 '-initWithCalendarIdentifier:'( 'alloc'を使って)を使います。 – Larme

答えて

2

[NSCalendar calendarWithIdentifier]は、iOS 8以降でご利用いただけます。

あなたが代わりに初期化メソッドを使用することができ、これはすべてのiOSで正常に動作します:

_calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; 
関連する問題