Advertise Mobile SDKs Books Events Forum News Social Networking Support Us
Follow @iphonedevsdk on Twitter

Interface 2, Advanced iOS
Mockup & Code Gen
($9.99)

Make your own iPhone apps
and run them live!
(free)

Pic Frame Dynamo: Photo Editing
($0.99)

Abiliator
($1.99)

Want your application or service advertised on iPhone Dev SDK?

Go Back   iPhone Dev SDK Forum > iPhone SDK Development Forums > iPhone SDK Development

Reply
 
LinkBack Thread Tools Display Modes
Old 11-21-2010, 03:26 AM   #1 (permalink)
Registered Member
 
Join Date: Nov 2010
Posts: 8
shadowmatter is on a distinguished road
Default Problem with UITableView as subview in a NIB

The executive summary: I'm trying to use a UITableView as a subview of my window's "main" view; it appears, but when I scroll the window I get the following error message:

2010-11-20 17:17:51.958 xwtf[6997:207] -[NSCFString tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5f46550

I have a subclass of ViewController with corresponding NIB file that is loaded by my application delegate. It's your typical New Project template. In that NIB file, I add a UITableView as a subview of view. In Interface Builder, I size it to take up the entire window (i.e. it completely overlaps its parent view).

Now I need to specify a data source and delegate. I create a class named DumbTableHelper like so:

Code:
@interface DumbTableHelper : NSObject<UITableViewDelegate, UITableViewDataSource> {
}
So, it's not a subclass of UIViewController, but I'm trying to keep this simple -- all I need is a delegate and data source it can call out to, right? Aside from dealloc, my methods in its .m file are:

Code:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"DumbTableCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    return cell;
}
As you can see, I'm not even configuring any cell; I just specify 10 rows, which is enough to force scrolling. Anyway, in Interface Builder I drag an object from the library into my NIB. I then change its class name to DumbTableHelper and specify it as the data source and delegate of the TableView already there. When I run it, the table appears. When I try to scroll down in the table, I get:

Code:
010-11-20 18:19:54.673 xwtf[6997:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5f46550'
*** Call stack at first throw:
(
	0   CoreFoundation                      0x0259eb99 __exceptionPreprocess + 185
	1   libobjc.A.dylib                     0x0239340e objc_exception_throw + 47
	2   CoreFoundation                      0x025a06ab -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
	3   CoreFoundation                      0x025102b6 ___forwarding___ + 966
	4   CoreFoundation                      0x0250fe72 _CF_forwarding_prep_0 + 50
	5   UIKit                               0x00321d6f -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 619
	6   UIKit                               0x00317e02 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75
	7   UIKit                               0x0032c69f -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1348
	8   UIKit                               0x003247ec -[UITableView layoutSubviews] + 242
	9   QuartzCore                          0x0455c481 -[CALayer layoutSublayers] + 177
	10  QuartzCore                          0x0455c1b1 CALayerLayoutIfNeeded + 220
	11  QuartzCore                          0x045552e0 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 302
	12  QuartzCore                          0x04555040 _ZN2CA11Transaction6commitEv + 292
	13  QuartzCore                          0x04585ebb _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
	14  CoreFoundation                      0x0257ff4b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
	15  CoreFoundation                      0x02514b27 __CFRunLoopDoObservers + 295
	16  CoreFoundation                      0x024ddce7 __CFRunLoopRun + 1575
	17  CoreFoundation                      0x024dd350 CFRunLoopRunSpecific + 208
	18  CoreFoundation                      0x024dd271 CFRunLoopRunInMode + 97
	19  GraphicsServices                    0x02d5d00c GSEventRunModal + 217
	20  GraphicsServices                    0x02d5d0d1 GSEventRun + 115
	21  UIKit                               0x002beaf2 UIApplicationMain + 1160
	22  xwtf                                0x00001af4 main + 102
	23  xwtf                                0x00001a85 start + 53
)
So it's calling tableView:cellForRowAtIndexPath: on a.. String? Anyone have any ideas?

I'm sorry if this turns out to be a stupid question -- so far all my UITableViews have been created programmatically by UITableViewController instances, but now I need to add a UITableView as a subview. I've read the Apple guide on table views and Beginning iPhone Development to make sure I'm not missing anything, but to no avail

Thanks!
shadowmatter is offline   Reply With Quote
Reply

Bookmarks

Tags
nib, uitableview

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



» Advertisements
» Online Users: 376
7 members and 369 guests
apatsufas, Kirkout, lzwasyc, MarkC, Sami Gh, SamorodovAlex, VinceYuan
Most users ever online was 1,387, 04-10-2012 at 04:21 AM.
» Stats
Members: 175,664
Threads: 94,120
Posts: 402,898
Top Poster: BrianSlick (7,990)
Welcome to our newest member, Leslie80
Powered by vBadvanced CMPS v3.1.0

All times are GMT -5. The time now is 02:44 AM.
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0