Starting in iOS 5 when you use storyboards and your reuse identifier matches a prototype in your storyboard you will not get a nil returned from dequeueReusableCellWithIdentifier.
From Apple Doc:
Table View Programming Guide for iOS
Creating and Configuring a Table View
Populating a Dynamic Table View with Data
If the dequeueReusableCellWithIdentifier: method asks for a cell
that’s defined in a storyboard, the method always returns a valid
cell. If there is not a recycled cell waiting to be reused, the method
creates a new one using the information in the storyboard itself. This
eliminates the need to check the return value for nil and create a
cell manually.
You can log the cell address to prove to your self they are being reused. But don't ship with the logging it will really slow up your table.
NSLog(@"Deque Cell %p", cell);
Better yet use breakpoint to log it.
$25 = 0x097f9850 <DDSImageSubtitleCheckedTableViewCell: 0x97f9850; baseClass = UITableViewCell; frame = (0 22; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0x97f9740>>
$26 = 0x0a6a4a00 <DDSImageSubtitleCheckedTableViewCell: 0xa6a4a00; baseClass = UITableViewCell; frame = (0 66; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa6a4b50>>
$27 = 0x0a3ad250 <DDSImageSubtitleCheckedTableViewCell: 0xa3ad250; baseClass = UITableViewCell; frame = (0 110; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa3ad390>>
$28 = 0x0a3ae640 <DDSImageSubtitleCheckedTableViewCell: 0xa3ae640; baseClass = UITableViewCell; frame = (0 176; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xa3ae780>>
$29 = 0x0972a370 <DDSImageSubtitleCheckedTableViewCell: 0x972a370; baseClass = UITableViewCell; frame = (0 220; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0x972a340>>
If you just want the addresses
0x097f9850
0x0a6a4a00
0x0a3ad250
0x0a3ae640
0x0972a370
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…