【发布时间】:2014-04-04 15:29:50
【问题描述】:
我的应用程序因以下错误而崩溃:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1cb8068'
我有很多数据需要在我的表格中显示。
在这个例子中,我在我的 JSON 中使用键、品牌。
如果我 NSLog 品牌,我会得到这样的结果:
品牌A
品牌B
品牌C
空
品牌E
空
空
品牌Z
当我滚动浏览我的表格并点击应用程序崩溃时。
如何将 替换为字符串?
这是我的方法:
- (void)updateData
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://mydataurl.com/abc" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSArray * aArray = [responseObject valueForKeyPath:@"result_payload.items"];
self.inventoryArray = [NSArray arrayWithArray:aArray];
// ***** Brand ******
self.brandArray = [self.inventoryArray valueForKeyPath:@"brand"];
for (int a = 0; a < [self.brandArray count]; a++)
{
self.brandString = [self.brandArray objectAtIndex:a];
}
[self.tableView reloadData];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
我为 NSDictionary 添加了一个类别:
.h
#import <Foundation/Foundation.h>
@interface NSDictionary (Utility)
- (NSString*)stringForKey:(id)key;
@end
.m
#import "NSDictionary+Utility.h"
@implementation NSDictionary (Utility)
- (NSString*)stringForKey:(id)key
{
NSString * string = [self objectForKey:key];
if ([string isEqual:[NSNull null]])
{
return nil;
}
return string;
}
@end
我用的分类不多,需要在特定的地方调用这个方法吗?或者只是将#import 添加到我的主类中?
【问题讨论】:
标签: objective-c json uitableview afnetworking