*** Terminating app due to uncaught exception ‘NSRangeException’, reason: ‘*** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]‘
原因:
在项目开发中有时会碰到类似以上提示,造成程序崩溃原因是
出现该问题一般是在我们的列表tableview中,计数
[[[[_dataList objectAtIndex:section] objectForKey:@"subs"] objectAtIndex:0] objectForKey:@"section"]; 时其键值未做判断是否为空处理造成的
程序中声明用到的:
NSMutableArray *_dataList; 变量运行时先通过代理载入tableview视图时是空的就停止,造成后续载入数据无法进行;
我是的是出现在:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section:
方法:
只要在有上述类似一维或二维键值的地三元判断一下就可以,方法如下:
[_dataList count]?[[[[_dataList objectAtIndex:section] objectForKey:@"subs"] objectAtIndex:0] objectForKey:@"section"]:@""; [_dataList count]?[[[_dataList objectAtIndex:section] objectForKey:@"subs"] count]:0;
相关推荐
在iOS开发中,Objective-C作为苹果公司的官方语言之一,广泛应用于早期的iOS应用开发。数组是编程中最常用的数据结构之一,用于存储有序集合。Objective-C提供了两个数组类:NSArray和NSMutableArray。NSArray用于...
### 基于Objective-C开发情书生成器 #### 一、项目概述 Objective-C是一种通用、面向对象的编程语言,结合了C语言与Smalltalk的面向对象技术。本项目旨在利用Objective-C语言构建一个情书生成器。该工具不仅能够...
### Objective-C 入门指南基础与实践 #### 一、为什么选择 Objective-C Objective-C 作为苹果公司操作系统(macOS 和 iOS)的核心开发语言之一,具有以下显著优势: 1. **苹果生态:** Objective-C 在苹果的生态...
在Objective-C语言中,字符串、数组、字典以及集合是常用的数据结构类型。这些类型分为可变和不可变两种,它们分别对应不同场景下的需求。在Objective-C中,字符串被封装在NSString类中,数组由NSArray和...
```objective-c #import #import <mach/mach_time.h> ``` - 设置随机数种子,确保每次程序运行时生成不同的随机数序列: ```objective-c srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF)); ``` - ...
[map setObject:@"c" forKey:@"content"]; 或者 NSMutableArray *list = [[NSMutableArray alloc]init]; NSMutableDictionary *map1 = [[NSMutableDictionary alloc]init]; [map1 setObject:@"a1" forKey:@...
NSRangeExceptionreason:*** -[__NSArray0 objectAtIndex:]: index 0 beyond bounds for empty NSArraycallStackSymbols:0 CoreFoundation 0x000000018b9991d0 + 1481 libobjc.A.dylib 0x000000018a3d055c objc_exce
Name: NSRangeException Reason: *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array 繁殖步骤 下载/克隆此仓库 在Visual Studio中,打开CollectionViewBoundsExceptionRepro.sln 在Visual...
for (int i = 0; i ; i ++) { if (i ) { [Arr addObject:[arr objectAtIndex:arr.count-3 + i]]; } else if (i > 2 && i ) { [Arr addObject:[arr objectAtIndex:i-3]]; } else if (i > arr.count+2 &&...
```objective-c -(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView { return [dataArray count]; // 假设 dataArray 存储了所有的数据 } ``` 2. **获取章节内行数** - `(NSInteger)tableView:...
### IT知识点:Xcode与Objective-C中的数组使用 在iPhone开发和使用Xcode的过程中,掌握数据结构如数组的使用是至关重要的。数组是一种常见的数据结构,用于存储一系列相同类型的对象,提供了一种更加高效和组织化...
### 项目中的常见问题及其解决方案 #### 一、代码规范问题 在软件开发过程中,遵循良好的代码规范至关重要。这不仅能提高代码的可读性和可维护性,还能减少潜在的错误和冲突。 **解决建议:** - 建立一套统一的...
Objective-C 的持久化数据结构 该项目的目标是为 Objective-C 实现。 现在,有 Vector、Set 和 HashMap。 安装 使用 CocoaPods,就像添加一样简单 pod 'Persistent' 到您的Podfile 。 用法 目前,它是和的一个端口...
在友盟给出的错误信息统计中,遇到类似于* -[__NSArrayM objectAtIndex:]: index 50 beyond bounds [0 .. 39]的错误信息时,如果通过objectAtIndex去检索错误的位置那将是一个巨大的工作量。这时我们可以使用dSYM...
NSString *destinationPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; // 解压ZIP文件 BOOL success = [SSZipArchive unzipFileAtPath:pathToZip to...
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$" options:0 error:&error]; NSTextCheckingResult *match = [regex ...
在传统的Objective-C中,创建并访问数组需要使用`alloc`和`init`方法,以及`objectAtIndex:`方法。例如: ```objc NSArray *array1 = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil]; id element = ...
在Objective-C中,每个方法都对应一个方法选择器(SEL)和一个实现(IMP)。通过`objc_msgSend`函数,Objective-C运行时系统根据方法选择器找到对应的实现并执行。Swizzle就是交换两个方法的选择器和实现的过程,...
id element = [array objectAtIndex:@"0"]; ``` - **注意事项**: - 对数组的操作可能涉及到性能问题,尤其是在大数据集上。 - 在处理数组时,需要注意数组元素的类型一致性。 #### 6. 访问实例变量直接性 ...
下面展示了一种通过Objective-C运行时技术实现方法替换的例子: ```objective-c @interface NSObject (Util) + (BOOL)swizzleMethod:(SEL)originalSelector withMethod:(SEL)swizzledSelector error:(NSError **)...