2009-07-06 67 views
-1

如果我創建了一個部分,則會發生錯誤。UITableview部分錯誤 - objc_msgSend

我已經嘗試將節索引設置爲0和1,但這也沒有幫助。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 
    static NSString *CellIdentifier1 = @"Cell1"; 


    if(indexPath.section == 1) { 
     if(indexPath.row == 0) { 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
     cell.text = @"test 1"; 

     } 

     return cell; 
    } 
    else if(indexPath.row == 1) { 
     UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
     if (cell1 == nil) { 
      cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease]; 
      cell1.text = @"test 2"; 

     } 

     return cell1; 
    } 
    } 

else if(indexPath.section == 2) { 
    if(indexPath.row == 0) { 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
      cell.text = @"test 1"; 

     } 

     return cell; 
    } 
    else if(indexPath.row == 1) { 
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
     if (cell1 == nil) { 
      cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease]; 
      cell1.text = @"test 2"; 

     } 

     return cell1; 
    } 
} 
} 

回答

0

節和行從0開始,據我所看到的,你不返回indexPath細胞第0,0行

編輯:重新發布源代碼(更可讀):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 
    static NSString *CellIdentifier1 = @"Cell1"; 
    if(indexPath.section == 1) { 
     if(indexPath.row == 0) { 
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
      if (cell == nil) { 
       cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
       cell.text = @"test 1"; 
      } 
      return cell; 
     } 
     else if(indexPath.row == 1) { 
      UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
      if (cell1 == nil) { 
       cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease]; 
       cell1.text = @"test 2"; 
      } 
      return cell1; 
     } 
    } 
    else if(indexPath.section == 2) { 
     if(indexPath.row == 0) { 
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
      if (cell == nil) { 
       cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
       cell.text = @"test 1"; 
      } 
      return cell; 
     } 
     else if(indexPath.row == 1) { 
      UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
      if (cell1 == nil) { 
       cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease]; 
       cell1.text = @"test 2"; 
      } 
      return cell1; 
     } 
    } 
} 
+0

節從1開始實際。函數 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView`應該總是返回至少'1'而不是'0'..這也可能導致崩潰。 – Jake 2009-07-06 10:05:29

0

基本問題。你有更新 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)部分的節數。 正常obj味精發送錯誤..當你正在處理你已經發布的東西或你不擁有的東西時例如... 在表視圖的init方法中你寫這個代碼 sectionArray = [NSArray arraywithcontentsoffile:xyz.plist]

並在numberofRowsInSection中使用類似這樣的東西 [sectionarray count];

其中sectionArray是一個實例變量..

-1

感謝您的回覆!

我已經寫了整個代碼一次,並運行它,每次我添加一行代碼。這有幫助。 我認爲問題在於if(indexPath.section == 0)等等。 我只設置了3個部分中的2個部分的內容。

但我不確定這是否是問題。

感謝您的大力幫助!

作爲一個初學者目標c是沒那麼容易:)