我是 iOS 的新手,我正在尝试为练习构建一个轻量级应用。我从一个视图控制器中获取两个文本字段条目,并将它们存储在NSDictionary
中。我正在NSArray
转移这些数据。现在,我想将这些数据从NSArray
显示到表格视图。我正在使用这行代码:
cell.textLabel.text=[self.myArray objectAtIndex:indexPath.row];
但是当光标到达此行时,我的应用程序崩溃了。感谢帮助。谢谢。
答案 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;
}