从NSarray到表格视图的差异数据

时间:2015-08-12 04:52:14

标签: ios objective-c

我是 iOS 的新手,我正在尝试为练习构建一个轻量级应用。我从一个视图控制器中获取两个文本字段条目,并将它们存储在NSDictionary中。我正在NSArray转移这些数据。现在,我想将这些数据从NSArray显示到表格视图。我正在使用这行代码:

cell.textLabel.text=[self.myArray objectAtIndex:indexPath.row];

但是当光标到达此行时,我的应用程序崩溃了。感谢帮助。谢谢。

5 个答案:

答案 0 :(得分:1)

对于UITableView,您必须至少定义两种方法:

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

您的方法numberOfRowsInSection似乎未实现。

尝试添加:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
{
    return [self.myArray count];
}

当然,您的ViewController必须为UITableViewDataSource和UItableViewDelegate委派。

答案 1 :(得分:1)

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [self.yourArry 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];
}

//Configure Cell

cell.textLabel.text = self.yourArry[indexPath.row]; 

return cell;

}

答案 2 :(得分:0)

请尝试此代码

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
{
    return [self.myArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        cell=nil;
        if (cell == nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
        cell.textLabel.text =[self.myArray objectAtIndex:indexPath.row]
        return cell;
 }

答案 3 :(得分:0)

尝试使用指向NSString的指针(或您尝试制作的对象)

NSString *string = [self.myArray objectAtIndex:indexPath.row]

确保您在tableview中设置了像这样的单元格数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
{
    return self.myArray.count
}

答案 4 :(得分:0)

第一步。

  

在YourViewController.h中

#import <UIKit/UIKit.h>
@interface YourViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
  

在YourViewController.m中

#import "YourViewController.h"

@interface YourViewController ()
{
    UITableView * YourTableview;
}

- (void)viewDidLoad
{
 YourTableview = [[UITableView alloc] initWithFrame:CGRectMake(0,0, 300, 500) style:UITableViewStylePlain];
YourTableview.delegate=self;
YourTableview.dataSource=self;
  [self.view addSubview:YourTableview];
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{    
 return 5;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
       static NSString * CellIdentifier=@"Cellid";

       UITableViewCell * SoftCell=[YourTableview dequeueReusableCellWithIdentifier:CellIdentifier];

        if (!SoftCell)
        {
      SoftCell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
     textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
        return SoftCell;
}