ios 7无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】ios 7无法识别的选择器发送到实例【英文标题】:ios 7 unrecognized selector sent to instance 【发布时间】:2014-09-12 10:58:58 【问题描述】:我收到错误“无法识别的选择器发送到实例 0xca51f70”应用程序在该行崩溃“ daysWeather = eventsJSONData[indexPath.row];" 我阅读了有关该问题的几篇文章,并了解这是 NSArray / NSDictionary 设置错误。我似乎无法弄清楚我需要更改什么。让我知道是否还有其他代码我可以发布。感谢您的帮助。
相关代码如下:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if(!self.events)
return 0;
NSArray *eventsJSONData = [self.events eventsJSONData];
return [eventsJSONData count];
NSLog( @"the count is %lu", (long)[eventsJSONData count]);
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"EventCell";
TDCell *cell = (TDCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier ];
if(cell == nil)
cell = [[TDCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"EventCell"];
NSDictionary *daysWeather = nil;
NSArray *eventsJSONData = [self.events eventsJSONData];
daysWeather = eventsJSONData[indexPath.row];
[cell configCell:daysWeather];
return cell;
json对象在调试区显示为如下代码:
2014-09-12 03:19:45.660 iCLUB[24624:60b] JSON OWNER:
data =
events =
result = (
"end_time" = "4:00AM";
"event_date" = "09-12-2014";
"event_id" = 84;
"event_image" = "http://www.asadfdfs.com/iclub/images/event_flyers/event114105121486dd4697f899124d1c3519c0f2272710f.png";
"event_price" = 20;
"event_tickets_total" = 200;
"event_title" = "New Test Event";
"start_time" = "1:00AM";
"venue_name" = "the box";
weekday = Friday;
);
;
;
【问题讨论】:
无法识别的选择器是什么?你也应该得到那个错误。 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__NSCFDictionary objectAtIndexedSubscript:]: unrecognized selector sent to instance...然后在底部打印 eventsJSONData 这是上面的 json 对象和indexPath 的描述:我相信这条线
NSArray *eventsJSONData = [self.events eventsJSONData];
应该改成那个(或类似的)
NSArray *eventsJSONData = [self.events eventsJSONData][@"result"];
从您的 JSON 对象看来,self.events
返回一个带有一个键 @"result" 的字典。
【讨论】:
非常感谢您解决了这个问题。在这种情况下,我仍然不明白它背后的原因。无论如何,谢谢,我花了几个小时试图弄清楚。 虽然这个答案可能“有效”,但它在技术上并不正确。请参阅我的正确答案。以上是关于ios 7无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
pushwoosh 错误无法识别的选择器发送到实例 Cordova 1.7.0
无法识别的选择器发送到实例(iOS) - 自动WaitsToMinimiseStalling
iOS Cocoa NSArrayI 长度]:发送到实例的无法识别的选择器
适用于 iOS 的 FBSDK:“发送到实例的无法识别的选择器”
NSInvalidArgumentException,使用 performSegueWithIdentifier 时发送到实例的无法识别的选择器