问题描述
如下代码有什么问题吗?我无法将数据显示在模拟器上,怎么办?
import 'ViewController.h'import 'ZYStatus.h'@interface ViewController ()@property(nonatomic,strong)NSArray *status;@end
@implementation ViewController
-(NSArray *)status{
if (_status == nil) { _status = [ZYStatus array];}return _status;
}
(void)viewDidLoad {
[super viewDidLoad];self.tableView.rowHeight = 80;NSLog(@'11');
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.status count];
}
-(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@'13');static NSString *cellId = @'cellId';UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];if (cell == nil){ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];}ZYStatus *status1 = self.status[indexPath.row];cell.textLabel.text = status1.name;return cell;
}@end
import <Foundation/Foundation.h>@interface ZYStatus : NSObject
@property(nonatomic,copy)NSString *text;@property(nonatomic,copy)NSString *icon;@property(nonatomic,copy)NSString *name;@property(nonatomic,copy)NSString *picture;@property(nonatomic,assign) BOOL vip;
-(instancetype)initWithDict:(NSDictionary *)dict;+(instancetype)statusWithDict:(NSDictionary *)dict;+(NSArray *)array;
@end
import 'ZYStatus.h'@implementation ZYStatus
-(instancetype)initWithDict:(NSDictionary *)dict{
self = [super init];if (self) { [self setValuesForKeysWithDictionary:dict];}return self;
}+(instancetype)statusWithDict:(NSDictionary *)dict{
return [[self alloc] initWithDict:dict];
}
+(NSArray *)array{
NSArray *array1 = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@'statuses.plist' ofType:nil]];NSMutableArray *arrayM;for (NSDictionary *dict in array1){[arrayM addObject:[self statusWithDict:dict]];}return arrayM;
}
@end
问题解答
回答1:NSArray *array1 = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@'statuses' ofType:“plist”]];
回答2:NSArray *array1 = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@'statuses' ofType:“plist”]];文件解析的时候,pathForResource后面跟的是文件名'statuses',ofType后面跟的是文件的后缀'plist'