0

テーブルビューに表示しようとしている nsmutablearray があります。私は uiviewcontroller を持っていて、テーブルビューを手動で追加しました。ファイル所有者にドラッグして、xib にデリゲートとソースを追加しました。ここに私の.hファイルがあります

#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 エラーが発生し、同じ警告が表示されます。 tableViewの行はローカルでインスタンス変数を隠していると言っていますが、何か考えはありますか? 助けてくれてありがとう!

更新: プログラムをコンパイルしましたが、例外がスローされます: 2013-03-26 22:28:48.691 Hello[79888:11303] *キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:] : このクラスは、キー tableView のキー値コーディングに準拠していません。

これは、私がテーブルに与えた情報やテーブルを間違って作成したことと関係がありますか? 再度、感謝します!

4

5 に答える 5

0
NSString *one;
NSString *jsonreturn;

2 つのステートメントには標準化が欠けています。

ARC を使用していない場合は、jsonreturn がリークします。

于 2013-03-26T03:57:29.970 に答える
0

インターフェイス ビルダー/ストーリーボードを使用してテーブルビューを追加した場合は、次を追加してみてください。

@synthesize tableView;

.m ファイルの @implementation の下。次に、IB で tableview が適切に接続されていることを確認します。(データ ソースとデリゲートの両方として View Controller に接続し、VC を tableView として tableview に形成します。)

于 2013-03-26T03:10:38.840 に答える
0

呼び出されたインスタンス変数がtableViewあり、テーブルビュー内でデータソースメソッドtableViewがパラメーターとして渡されるため、警告が表示されます。この変数名またはインスタンス変数名を変更すると、問題が解決します。どちらも同じものを指しているので、問題ありません。

Stopping at Breakpoint 1そして、おそらくブレークポイントを設定したと言っている時点で停止している場合。コードの左側にある青い矢印マークのように見えます。もう一度クリックするか(明るい色合いになります)、削除することで無効にできます。ブレークポイントをドラッグするか、ブレークポイントを右クリックして削除します。

ブレークポイント

于 2013-03-26T04:07:16.390 に答える
0

あなたのtablviewの変数名を見てください

IBOutlet UITableView *tableView

UITableView の組み込みメソッドと同じ

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

そのため、「tableView はローカルであり、インスタンス変数を隠しています」という警告が表示されます

それを避けるには、UITableView変数名を「myTableView」に変更するだけです

于 2013-03-26T04:10:50.797 に答える
0

まず、NSMutableArray を割り当てます。このように " ArrayName = [[NSMutableArray alloc] init];

于 2013-03-26T05:29:17.440 に答える