通常、私はプログラミング言語よりもはるかに経験豊富な人に行き、それを根底から掘り下げようとするのを嫌いますが、かなり長い間、これについて頭を悩ませてきました. 相変わらずの人気です
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: ' * - [__NSArrayMutable .. insertObject:atIndex:]: オブジェクトを nil にすることはできません
私は Xcode/Obj-C にまったく慣れていないため、理解が限られています。基本的に、私は Apple の 'Your Second iOS App' を変更して、すべてがどのように連携しているかをよりよく理解しようとしてきました。このアプリは、基本的に「BirdSighting」アプリの修正版です。私はこの素晴らしいサイトをチェックしましたが、特に私の答えに対する簡潔な答えは見つかりませんでした.
とにかく、例外ブレークポイントを追加しましたが、次の行にスローされています。
[self.masterNewEventList addObject:イベント];
底に向かって。
NewEventDataController.m
#import "NewEventDataController.h"
#import "NewEvent.h"
@interface NewEventDataController ()
- (void)initializeDefaultDataList;
@end
@implementation NewEventDataController
- (void)initializeDefaultDataList
{
NSMutableArray *eventList = [[NSMutableArray alloc] init];
self.masterNewEventList = eventList;
NewEvent *event;
NSDate *today = [NSDate date];
event = [[NewEvent alloc] initWithName:@"Event" date:today];
[self addNewEventWithEvent:event];
}
- (void)setMasterNewEventList:(NSMutableArray *)newList
{
if (_masterNewEventList != newList)
_masterNewEventList = [newList mutableCopy];
}
- (id)init
{
if (self = [super init])
{
[self initializeDefaultDataList];
return self;
}
return nil;
}
- (NSUInteger)countOfList
{
return [self.masterNewEventList count];
}
- (NewEvent *)objectInListAtIndex:(NSUInteger)theIndex
{
return [self.masterNewEventList objectAtIndex:theIndex];
}
- (void)addNewEventWithEvent:(NewEvent *)event
{
[self.masterNewEventList addObject:event];
}
@end
私の NewEvent.m は次のとおりです。
#import "NewEvent.h"
@implementation NewEvent
-(id)initWithName:(NSString *)event date:(NSDate *)date
{
self = [super init];
if (self)
{
_event = event;
_date = date;
return self;
}
return nil;
}
@end
私の考えでは、初期イベントを追加しようとしているとき (スローする直前)、イベント自体が適切に初期化されていません。デバッグは次のとおりです。
event = (NewEvent *) 0x00000000
ご覧いただきありがとうございます。
main.m
#import <UIKit/UIKit.h>
#import "ParentAppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([ParentAppDelegate class]));
}
}