标签: nsrangeexception

NSRangeException Out of Bounds错误

我正在设置标签的属性文本,我收到这个奇怪的错误:由于未捕获的异常'NSRangeException'而终止应用程序,原因:'NSMutableRLEArray replaceObjectsInRange:withObject:length :: Out of bounds'.我之前从未见过这个错误,所以我不确定如何修复它.以下是导致崩溃的代码:

if ([cell.waveTextLabel respondsToSelector:@selector(setAttributedText:)])
{
    const CGFloat fontSize = 16.0f;

    //define attributes
    UIFont *boldFont = [UIFont fontWithName:@"HelveticaNeue-Medium" size:fontSize];

    // Create the attributes
    NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:boldFont, NSFontAttributeName, nil];

    NSRange rangeOfIs = [cell.cellWaveObject.waveString rangeOfString:@" is"];
    NSLog(@"The range of is: {%lu, %lu}", (unsigned long)rangeOfIs.location, (unsigned long)rangeOfIs.length);
    NSRange nameRange = NSMakeRange(0, rangeOfIs.location);
    NSLog(@"The range of the name: {%lu, %lu}", (unsigned long)nameRange.location, (unsigned long)nameRange.length);

    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:cell.cellWaveObject.waveString];
    [attributedString setAttributes:attrs range:nameRange];

    //set the label text
    [cell.waveTextLabel …
Run Code Online (Sandbox Code Playgroud)

nsattributedstring uilabel nsrange nsrangeexception

19
推荐指数
1
解决办法
2182
查看次数

IndexOfObject返回2147483647

我有一个包含10个项目的数组.当我IndexOfObject为元素编号9 调用" "时,元素编号10 Xcode返回异常:" NSRangeException"

原因:'_ [_ NSCFArray objectAtIndex:]索引:2147483647超出边界(10)'.

从前一个NSLog,我看到数组中存在两个元素,但indexOfObject没有找到它们.为什么?

我的代码是:

    NSDictionary * headConfig =[avatarDictionaryToSave objectForKey:@"head_dictionary"];
    NSString * headImage =[headConfig objectForKey:@"layer_key"];
    NSString * pathFace =[[NSBundle mainBundle]pathForResource:@"Face" ofType:@"plist"];
    NSLog(@"%@", headImage);

    NSArray *arrayFace =[NSArray arrayWithContentsOfFile:pathFace];
    NSLog(@"the  elements are: %@", arrayFace);//here headImage is present
    int index =[arrayFace indexOfObject:headImage];
    NSLog(@"the index is %d", index);
Run Code Online (Sandbox Code Playgroud)

iphone nsarray nsrangeexception

12
推荐指数
1
解决办法
1万
查看次数

NSMutableRLEArray objectAtIndex:effectiveRange ::越界

我尝试将属性分配给3个newClock字符串的最后一个字符,即@"3:33:23".

但是我在构造时遇到错误NSRange:

NSMutableAttributedString *mas = [[NSMutableAttributedString alloc]initWithString:newClock];
[mas addAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor],
NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:12]}
 range:NSMakeRange(newClock.length-3,newClock.length)];
Run Code Online (Sandbox Code Playgroud)

objective-c nsrange nsrangeexception ios7

12
推荐指数
1
解决办法
2万
查看次数

找出nsrangeexception的来源

我有一个NSRangeException不会一直发生的错误(特别是在我调试时).它随机出现,我无法弄清楚它来自哪里.我有很多数组操作,所以很难以这种方式消除它.

我的问题是我是否可以从调试器输出中获取线索,例如类和行号,例如12109和707的数字是多少?:

2012-03-15 09:25:15.303 appname[12109:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 2 beyond bounds [0 .. 0]'
Run Code Online (Sandbox Code Playgroud)

任何指针赞赏.

编辑:日志的剩余部分:

*** First throw call stack:
(0x33ff38bf 0x342431e5 0x33f4b275 0x1702d 0x37662331 0x3761b2b3 0x33f4d435 0x373b79eb 0x373b79a7 0x373b7985 0x373b76f5 0x3744de55 0x374e3e45 0x373aa99b 0x33fc7b4b 0x33fc5d87 0x33fc60e1 0x33f494dd 0x33f493a5 0x307cdfcd 0x373ca743 0x2325 0x22e4)
terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)

iphone debugging nsrangeexception

8
推荐指数
1
解决办法
3746
查看次数

谷歌崩溃前的谷歌分析最后一个屏幕

我的应用程序因信息很差而崩溃.当应用程序崩溃时,有没有办法在谷歌分析中找到最后一个屏幕名称?我正在跟踪我的应用程序中的每个屏幕.这样我就可以知道bug存在于哪个控制器中.谢谢你的帮助!

编辑 崩溃报告:

NSRangeException Trace: <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> CFRunLoopRunSpec
Run Code Online (Sandbox Code Playgroud)

iphone google-analytics objective-c ios nsrangeexception

6
推荐指数
2
解决办法
3193
查看次数

核心数据迁移后的NSRangeException

在我的应用程序中添加新的Core Data模型版本后,我执行了轻量级迁移,显然已成功完成.迁移的文件加载正常,但在第一次尝试通过特定关系访问属性时,应用程序崩溃了NSRangeException: '*** -[__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds [0 .. 35]'.这种关系在迁移之前运行良好.我从其他帖子中了解到4294967295确实存在-1,但我唯一可以识别出我的应用程序/数据中有36个项目的是数据模型中共有36个实体(供参考,正在获取的关系有58个项目)它的表).

问题:

我的问题是:基于我得到的错误以及我在下面进行的故障排除,是否存在一种可以通过轻量级迁移的模式更改,但是在此过程中损坏了数据,导致了注意到的异常?我将尝试将迁移分解为几个版本的较小块,以隔离或避免问题,但能够专注于可能有问题的特定架构更改会很好.

失败:

使用"myobject"中的以下代码发生故障:

[[self object2] text];
Run Code Online (Sandbox Code Playgroud)

object2关系是一对一,非可选的两种方式,并且数据模型之间的正向和反向关系都没有改变.该text属性可能不相关,因为在发生错误时,awakeFromFetch在object2中未达到该属性.如果我[self object2]在上述语句之前分配变量,则分配成功并报告data: <fault>.

数据库:

在sqlite3中查看数据库,我注意到以下内容:

  1. 前向和反向关系的索引值在每个表中看起来都是正确的.
  2. object2表有两列用于反向关系,而不是迁移之前的那一列(ZMYOBJECT如前所述,另外一列Z2_MYOBJECT,对于所有行都是空的).没有添加任何其他关系来解释此专栏.
  3. Z_PRIMARYKEY表中,迁移后的所有条目都显示-1Z_MAX,而在迁移之前,它们对于空表和零填充表的最大行数显示为零.手动更新Z_MAX到正确的值对例外没有帮助.所有Z_SUPER数值都是正确的.

我设置了一个映射模型,看看自动映射是否有任何错误,但一切看起来都很好.

整体架构更改:

在数据模型的源版本中,有14个实体,其中只有4个已经填充了数据(应用程序仍处于开发阶段).七个是顶级实体,七个是三个顶级实体的子实体.

在数据模型的目标版本中,添加了22个实体,一些顶级实体和一些子实体,具有几十个关系,包括一些添加到现有实体的关系.

某些属性和关系已从现有实体中删除,其他属性和关系已添加.未更改任何数据类型或关系设置,未重命名任何属性或关系,也不需要特殊映射.

更新(2/25/12):当我开始研究一个新的中间模型时,我记得我已经将NSManagedObject中的许多实体的类(representClassName)更改为NSManagedObject子类,但是没有生成类文件.我没有怀疑会导致问题,实际上,创建所有类文件对例外没有帮助.我只想注意到模型之间的另一个变化.

结论:

这是一个疯狂的猜测,但如果36实体计数不是巧合,似乎当"myobject"尝试在"object2"中出错时,它没有表的有效引用并且正在尝试加载表号-1 ,导致异常.[self object2]然而,简单分配成功的事实并不符合这一结论.

有任何想法吗?

core-data core-data-migration nsrangeexception

5
推荐指数
1
解决办法
508
查看次数

混合静态和动态UITableViewController内容会导致NSRangeException

我一直在搜索这个错误,并找到一些具有类似行为的帖子,但没有解决问题的解决方案.

我有一个UITableViewController(在SB中声明为Static),它有章节:Section 0(Recipe)是静态的4个单元格,Section 1(Flavors)应该是动态的

故事板截图

这是我用来测试的代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    rows = [[NSMutableArray alloc] initWithArray:@[@"test",@"test",@"test",@"test",@"test",@"test",@"test"]];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
    switch (section) {
        case 0:
        return 4;
        break;
        case 1:
        return rows.count;
        break;

        default:
        break;
    }

    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell;

    switch (indexPath.section) {
        case 0:
        return [super tableView:tableView cellForRowAtIndexPath:indexPath]; …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview ipad ios nsrangeexception

5
推荐指数
1
解决办法
1357
查看次数

索引'5'超出空数组崩溃的范围

我正在构建一个RSS-Reader并在导航栏的右上角放置一个刷新按钮.它工作正常,我没有崩溃.但是,如果我在滚动期间按下刷新按钮,应用程序崩溃.我不知道问题出在哪里.我分析了这个项目,但找不到任何东西......

所以这是我得到的错误:

2012-01-22 16:36:48.205 GYSA[712:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds for empty array'
*** First throw call stack:
(0x37adb8bf 0x315c11e5 0x37a24b6b 0x7913 0x34ef39cb 0x34ef2aa9 0x34ef2233 0x34e96d4b 0x37a3a22b 0x33231381 0x33230f99 0x3323511b 0x33234e57 0x3325c6f1 0x3327f4c5 0x3327f379 0x37249f93 0x3747b891 0x37aa4f43 0x37aaf553 0x37aaf4f5 0x37aae343 0x37a314dd 0x37a313a5 0x375affcd 0x34ec1743 0x2ac9 0x2a54)
terminate called throwing an exception(gdb)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#import "RssFunViewController.h"
#import "BlogRssParser.h"
#import "BlogRss.h"

@implementation RssFunViewController

@synthesize rssParser = _rssParser;
@synthesize tableView = _tableView;
@synthesize …
Run Code Online (Sandbox Code Playgroud)

iphone rss xcode objective-c nsrangeexception

4
推荐指数
1
解决办法
2966
查看次数

UIScrollView setContentSize与未捕获的NSRangeException崩溃

在删除了一些UIScrollView的内容后,调用setContentSize会使应用程序崩溃.

int toolbarHeight = [[[self navigationController] toolbar] frame].size.height;
int navbarHeight = [[[self navigationController] navigationBar] frame].size.height;

int totalHeight = toolbarHeight + navbarHeight;
// contentWidth is 640
CGSize contentSize = CGSizeMake(contentWidth, [scrollView frame].size.height - totalHeight);

[scrollView setContentSize:contentSize]; // Crash happens here, contentSize is perfectly valid
Run Code Online (Sandbox Code Playgroud)

*由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引1超出边界[0 .. 0]'

可能是什么导致了这个?

编辑:这是那些能够理解它的人的堆栈跟踪:

* thread #1: tid = 0x1c03, 0x34d2e32c libsystem_kernel.dylib`__pthread_kill + 8, stop reason    = signal SIGABRT
frame #0: 0x34d2e32c libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x36c2a20e libsystem_c.dylib`pthread_kill + 54 …
Run Code Online (Sandbox Code Playgroud)

crash objective-c uiscrollview ios nsrangeexception

4
推荐指数
1
解决办法
707
查看次数

理解NSMutableArray上的arrayWithCapacity:方法

我很难尝试理解Objective-C的NSMutableArray类中的方法.我使用此类的arrayWithCapacity:static方法创建了一个数组,如下所示:

NSMutableArray * myArray = [NSMutableArray arrayWithCapacity: 10];
Run Code Online (Sandbox Code Playgroud)

然后我尝试访问数组中的元素:

id myVariable = myArray[5];
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds for empty array'
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我是否误解了方法描述的任何内容?

谢谢您的帮助.

objective-c nsmutablearray nsrangeexception

3
推荐指数
1
解决办法
3310
查看次数