你學PHP 應該是PHP5 , 所以預設都會把錯誤訊息關起來, 我還是習慣把他打開.
你可以研究看看看 PHP.INI 這個設定檔 內的error_reporting 跟DISPLLY_ERRORS 二個 設定值. 我習慣的設定是用下面這個.
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_errors = On


1 2 3 4 5 6 7 8 | #import <uikit uikit.h="">@interface MoodDiaryViewController : UITableViewController { /* Store the indexpath which already expanded */ NSMutableIndexSet *expandedSections;}@end</uikit> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | #import "testTableViewController.h"@implementation MoodDiaryViewController#pragma mark -#pragma mark View lifecycle- (void)viewDidLoad { [super viewDidLoad]; if (!expandedSections) { expandedSections = [[NSMutableIndexSet alloc] init]; } }#pragma mark -#pragma mark Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 3;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { /* Return the number of rows in the section. */ if ([expandedSections containsIndex:section]) { /* Return all rows when expanded */ return 5; } else { /* Only top row showing */ return 1; }}// Customize the appearance of table view cells.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d_%d", indexPath.section, indexPath.row]; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (indexPath.row == 0) { /* Parent cell */ if (cell == nil) cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; /* Change UI status */ if ([expandedSections containsIndex:indexPath.section]) { cell.textLabel.text = [NSString stringWithFormat:@"- Section=%d Row=%d", indexPath.section, indexPath.row]; } else { cell.textLabel.text = [NSString stringWithFormat:@"+ Section=%d Row=%d", indexPath.section, indexPath.row]; } } else { /* Child cell */ if (cell == nil) cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; cell.textLabel.text = [NSString stringWithFormat:@"Section=%d Row=%d", indexPath.section, indexPath.row]; } return cell;}#pragma mark -#pragma mark Table view delegate- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { /* If user choose the parent row */ if (indexPath.row == 0) { NSInteger section = indexPath.section; BOOL currentlyExpanded = [expandedSections containsIndex:section]; NSInteger rows; NSMutableArray *arrRows = [NSMutableArray array]; if (currentlyExpanded) { /* Child cell for this parent */ rows = [self tableView:tableView numberOfRowsInSection:section]; [expandedSections removeIndex:section]; } else { [expandedSections addIndex:section]; rows = [self tableView:tableView numberOfRowsInSection:section]; } /* Create child index path. Child path start frow index one */ for (int i = 1; i < rows; i++) { NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:section]; [arrRows addObject:tmpIndexPath]; } UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; /* Remove of insert above index path into tableview */ if (currentlyExpanded) { [tableView deleteRowsAtIndexPaths:arrRows withRowAnimation:UITableViewRowAnimationTop]; cell.textLabel.text = [NSString stringWithFormat:@"+ Section=%d Row=%d", indexPath.section, indexPath.row]; } else { [tableView insertRowsAtIndexPaths:arrRows withRowAnimation:UITableViewRowAnimationTop]; cell.textLabel.text = [NSString stringWithFormat:@"- Section=%d Row=%d", indexPath.section, indexPath.row]; } } else { // For choosing child row ; }}#pragma mark -#pragma mark Memory management- (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Relinquish ownership any cached data, images, etc. that aren't in use.}- (void)viewDidUnload { // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand. // For example: self.myOutlet = nil;}- (void)dealloc { [super dealloc];}@end |