由于某种原因,我的应用程序在尝试将单元格加载到表格 View 时失败。我在整个应用程序中的所有表格 View 都完全相同,我对它们没有任何问题。这可能与从另一个 viewController 初始化 Controller 有关吗?我不这么认为。我在 Storyboard 中的单元格已获得标识符。这是屏幕截图的链接。
所以我什么都试过了here但没有任何效果。
这是使用 [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath] 方法的输出:
2013-11-14 15:36:33.419 ComplyOS[43683:70b] *** Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2903.23/UITableView.m:5261
2013-11-14 15:36:33.424 ComplyOS[43683:70b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier ProcedureCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
(
0 CoreFoundation 0x0000000101fa9795 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000101d0c991 objc_exception_throw + 43
2 CoreFoundation 0x0000000101fa961a +[NSException raise:format:arguments:] + 106
3 Foundation 0x00000001018a99e9 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
4 UIKit 0x00000001008f9879 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 150
5 ComplyOS 0x00000001000099b4 -[EndoPxTableViewController tableView:cellForRowAtIndexPath:] + 116
6 UIKit 0x0000000100902b8a -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 348
7 UIKit 0x00000001008ea836 -[UITableView _updateVisibleCellsNow:] + 2297
8 UIKit 0x00000001008fb381 -[UITableView layoutSubviews] + 207
9 UIKit 0x0000000100892b27 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 354
10 QuartzCore 0x00000001005afa22 -[CALayer layoutSublayers] + 151
11 QuartzCore 0x00000001005a4589 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 363
12 QuartzCore 0x00000001005a440a _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
13 QuartzCore 0x0000000100519694 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 252
14 QuartzCore 0x000000010051a70c _ZN2CA11Transaction6commitEv + 394
15 QuartzCore 0x000000010051ad79 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
16 CoreFoundation 0x0000000101f74ff7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
17 CoreFoundation 0x0000000101f74f67 __CFRunLoopDoObservers + 391
18 CoreFoundation 0x0000000101f546d2 __CFRunLoopRun + 946
19 CoreFoundation 0x0000000101f53f33 CFRunLoopRunSpecific + 467
20 GraphicsServices 0x0000000103c2b3a0 GSEventRunModal + 161
21 UIKit 0x0000000100837043 UIApplicationMain + 1010
22 Comply 0x0000000100002703 main + 115
23 libdyld.dylib 0x00000001029ed5fd start + 1
24 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
这是我的 UITableView Controller 代码:
#import "EndoPxTableViewController.h"
#import <AFHTTPRequestOperationManager.h>
#import "ProcedureTableViewCell.h"
@interface EndoPxTableViewController (){}
@property (nonatomic, strong)NSArray *procedures;
@end
@implementation EndoPxTableViewController
- (void)setVisitItem:(Patient_VisitsModel *)visitItem{
if(_visitItem !=visitItem){
_visitItem = visitItem;
}
}
-(void)setUserId:(NSString *)userId{
if(_userId !=userId){
_userId = userId;
}
[self fetchProceduresData];
}
- (void) fetchProceduresData{
NSString *procedureURLString =[NSString stringWithFormat:@"https://XXXX";
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:procedureURLString parameters:nil success:^(AFHTTPRequestOperation *operation, id json) {
_procedures = json;
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error occured in getSessionID method");
NSLog(@"Error: %@", error);
}];
}
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Endoscopy Report";
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"Procedures:%@", [_procedures valueForKey:@"description"]);
return _procedures.count;
}
- (ProcedureTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ProcedureCell";
ProcedureTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
NSString *procedureDescription = [_procedures[indexPath.row] valueForKey:@"description"];
NSLog(@"Procedure Description:%@", procedureDescription);
cell.procedureLabel.text = procedureDescription;
cell.questionImage.image = nil;
return cell;
}
#pragma mark - Navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
}
@end
感谢大家的帮助。我有点绝望了。
最佳答案
我的错!您似乎正在使用 dequeueReusableCellWithIdentifier:forIndexPath: 方法来使单元格出列。请尝试使用 dequeueReusableCellWithIdentifier:,它应该可以工作。
dequeueReusableCellWithIdentifier:forIndexPath: 需要一个 nib 文件或一个注册类来使单元格出队,但您使用的是 Storyboard原型(prototype)单元格。如果您使用正确的标识符,dequeueReusableCellWithIdentifier: 保证从 Storyboard 中返回一个单元格。
希望对您有所帮助。
关于ios - -[UITableView dequeueReusableCellWithIdentifier :forIndexPath:] 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989266/
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我正在尝试在Rails上安装ruby,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf
我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id