objective-c - 将对象添加到 NSMutableArray 时使用 SIGABRT

标签 objective-c cocoa nsmutablearray

我有一个方法,它返回一个带有要绘制的点的NSArray。以下是我的方法的代码。

- (NSArray *)pointsToPlot:(GraphView *)requester
{
    NSMutableArray *points = [[NSSet alloc] init];

    CGPoint midPoint;
    midPoint.x = self.graph.bounds.origin.x + self.graph.bounds.size.width / 2;
    midPoint.y = self.graph.bounds.origin.y + self.graph.bounds.size.height / 2;

    //Find points to plot
    NSValue *point1 = [NSValue valueWithCGPoint:CGPointMake(midPoint.x - 10, midPoint.y)];
    NSValue *point2 = [NSValue valueWithCGPoint:CGPointMake(midPoint.x, midPoint.y - 10)];
    NSValue *point3 = [NSValue valueWithCGPoint:CGPointMake(midPoint.x + 10, midPoint.y)];
    [points addObject:point1];
    [points addObject:point2];
    [points addObject:point3];


    [points autorelease];
    return points;
}

point1 添加到 points 数组后,我就会收到 SIGABRT

以下是获得的堆栈跟踪:

2011-10-27 10:43:36.939 Graphing Calculator[7056:207] -[__NSSet0 addObject:]: unrecognized selector sent to instance 0x4b57900
2011-10-27 10:43:36.943 Graphing Calculator[7056:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSSet0 addObject:]: unrecognized selector sent to instance 0x4b57900'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00dc95a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00f1d313 objc_exception_throw + 44
    2   CoreFoundation                      0x00dcb0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00d3a966 ___forwarding___ + 966
    4   CoreFoundation                      0x00d3a522 _CF_forwarding_prep_0 + 50
    5   Graphing Calculator                 0x000073cd -[GraphViewController pointsToPlot:] + 1037
    6   Graphing Calculator                 0x00006895 -[GraphView drawRect:] + 965
    7   UIKit                               0x00053187 -[UIView(CALayerDelegate) drawLayer:inContext:] + 426
    8   QuartzCore                          0x016b3b5e -[CALayer drawInContext:] + 143
    9   QuartzCore                          0x016bfe47 _ZL16backing_callbackP9CGContextPv + 85
    10  QuartzCore                          0x0160d1f7 CABackingStoreUpdate + 2246
    11  QuartzCore                          0x016bfd24 -[CALayer _display] + 1085
    12  QuartzCore                          0x016b627d CALayerDisplayIfNeeded + 231
    13  QuartzCore                          0x0165b0c3 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 325
    14  QuartzCore                          0x0165c294 _ZN2CA11Transaction6commitEv + 292
    15  QuartzCore                          0x0165c46d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
    16  CoreFoundation                      0x00daa89b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
    17  CoreFoundation                      0x00d3f6e7 __CFRunLoopDoObservers + 295
    18  CoreFoundation                      0x00d081d7 __CFRunLoopRun + 1575
    19  CoreFoundation                      0x00d07840 CFRunLoopRunSpecific + 208
    20  CoreFoundation                      0x00d07761 CFRunLoopRunInMode + 97
    21  GraphicsServices                    0x010011c4 GSEventRunModal + 217
    22  GraphicsServices                    0x01001289 GSEventRun + 115
    23  UIKit                               0x00029c93 UIApplicationMain + 1160
    24  Graphing Calculator                 0x000021d9 main + 121
    25  Graphing Calculator                 0x00002155 start + 53
)
terminate called after throwing an instance of 'NSException'

有人可以解释一下我在这里做错了什么吗?

最佳答案

改变

    NSMutableArray *points = [[NSSet alloc] init];

    NSMutableArray *points = [[NSMutableArray alloc] init];

关于objective-c - 将对象添加到 NSMutableArray 时使用 SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920409/

相关文章:

objective-c - Obj-C、UITableView UI 改进以处理大量记录,也就是点击下一步获取更多行?

objective-c - OS X 中的 NSDataWritingFileProtectionComplete

objective-c - 设置 UIView 子类的背景颜色不起作用

ios - 应用程序在 iOS 9 上卡在启动屏幕中且没有错误

objective-c - 如何从 cocoa 的 super View 中删除imageview?

cocoa 日历选择器

ios - 找不到我的应用程序崩溃的原因

objective-c - NSMutableArray 有 500 个对象。

iphone - 无法将对象添加到 NSMutableArray

objective-c - 将 NSString 拆分为多个命令行参数