2013-03-26 48 views
0

我有一個nsmutablearray,即時嘗試顯示在表視圖。我有一個uiviewcontroller並手動添加了表格視圖。我已經通過將它拖到文件所有者的方式在xib上添加了委託和源代碼。這裏是我的.h文件nsmutablearray到tableview

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> 
{ 
    IBOutlet UILabel *label; 
    IBOutlet UITextField *texto; 
    IBOutlet UIWebView *link; 
    //IBOutlet UILabel *links; 
    IBOutlet UITextView *links;  
    // IBOutlet UITableView *tableView; 
    NSMutableArray *jsonArray; 
} 

@property (nonatomic,retain) IBOutlet UITableView *tableView; 
//@property (nonatomic,retain) NSMutableArray *jsonArray; 

-(IBAction)button; 
-(IBAction)field; 

-(void)populateArray; 

@end 

,這裏是我的.m文件

#import "ViewController.h" 

@interface ViewController() 
@end 

@implementation ViewController 

NSString *one; 
NSString *jsonreturn; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSURL *url = [NSURL URLWithString:@"www.myphpfile.com"]; 
    jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; // Pulls the URL 
NSLog(jsonreturn); // Look at the console and you can see what the restults are 
    NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding]; 
    NSError *error = nil; 
    jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&error]; 

    NSLog(@"jsonList: %@", jsonArray); 

    if(!jsonArray) 
    { 
     NSLog(@"Error parsing JSON:%@", error); 
    } 
    else 
    { 
     // Exception thrown here. 
     for(NSDictionary *item in jsonArray) 
     { 
      NSLog(@"%@", item); 
     } 
    } 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{  
    return [jsonArray count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell==nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    NSLog(@"Im HERE!!!"); 

    cell.textLabel.text = [jsonArray objectAtIndex:[indexPath row]]; 
    NSLog(@"Cell is %@", [jsonArray objectAtIndex:indexPath.row]); 
    return cell; 
} 

我的問題是,我不能得到的細胞顯示日期,我有NS記錄,它表明,它是拉它,也即時獲取線程1,斷點1.1錯誤,其中的單元格創建和警告在同一行sayin tableView是本地和隱藏實例變量,任何想法?謝謝您的幫助!

更新: 我得到了我的程序編譯,但它拋出一個異常: 2013年3月26日22:28:48.691你好[79888:11303] *終止應用程序由於未捕獲的異常 'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:這個類不是關鍵字tableView的編碼兼容鍵值。'

這是否與表中的信息不一致或即時通訊創建表錯誤?再次感謝!

+0

您是否正在使用動態原型爲您的表視圖的故事板?如果是這樣,你不需要cell = bit,那麼代碼將被你的故事板覆蓋。 – 2013-03-26 00:47:52

+0

首先,你下載後不要調用[tableView reloadData]。另外,你真的不應該在主線程上執行下載。我不知道你爲什麼得到錯誤。你應該發佈實際的錯誤,而不是解釋。 – rdelmar 2013-03-26 00:48:40

+0

即時通訊仍然是新的在這裏我會添加tableView reloadData?它也不是一個真正的錯誤,它只是停止應用程序說斷點1.1,但沒有錯誤 – paul590 2013-03-26 00:56:18

回答

0

如果你已經通過界面生成器/分鏡嘗試添加添加的實現代碼如下:

@synthesize tableView; 

在.m文件的@implementation下。然後確保你的桌面視圖在你的IB中正確連接。 (向視圖控制器作爲兩個數據源和委託,然後形成VC到的tableview爲的tableView。)

0
NSString *one; 
NSString *jsonreturn; 

這兩個語句缺乏標準化。

如果你還沒有使用ARC,jsonreturn會泄漏。

0

由於您有一個名爲tableView的實例變量,並且在表視圖數據源方法tableView作爲參數傳遞進來,您將收到警告。更改此變量名稱或實例變量名稱將解決該問題。既然他們都指的是同樣的事情,那沒關係。

如果它剛剛停止在說Stopping at Breakpoint 1的點上,那麼你可能已經設置了一個斷點。它看起來像一個藍色的箭頭標記,位於代碼的左側。您可以通過再次單擊(變成較亮的陰影)或刪除它來禁用它 - 將斷點拖出或右鍵單擊斷點並刪除。

Breakpoint

0

看看你tablview的變量名

IBOutlet UITableView *tableView 

其作爲UITableView的內置方法同樣使用

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

所以它給你的警告,「的tableView是本地和隱藏實例變量「

爲了避免它只是改變你的UITableView變量名爲「myTableView」

0

首先分配您的NSMutableArray,像這樣「ArrayName = [[NSMutableArray alloc] init];

相關問題