疑问: NSArray 访问问题

2021年09月15日 阅读数:1
这篇文章主要向大家介绍疑问: NSArray 访问问题,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
.h文件

#import
<UIKit/UIKit.h> #import "InterfaceHelper.h" #import "QuartzCore/QuartzCore.h" @interface FanWeiandLeiXingViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> { IBOutlet UILabel *labTitle; IBOutlet UILabel *labSubTitle; NSArray *arrFanWei; NSArray *arrLeiXing; NSString *strOriginal; NSMutableDictionary *dic_tabelViewDataSource; UITableView *commonTableView; NSInteger rowCount; // tableview 的行数 范围和类型两个表共用 } @property(nonatomic,retain)NSString *strBtnName; // 标记那个按钮被按下 @property(nonatomic,retain)NSString *strTypeName; //标记模块的名字 @property(nonatomic,retain)NSArray *arrLeiXing; //问题根源,若是没有这句,.m文件中,除了viewDidLoad 方法外,其它方法不能访问arrLeiXing 变量。也就是说,只能用self.的方式来访问这个数组对象。难道全局对象,必须都用self.的方式来访问吗?
-(IBAction)btnBack:(id)sender; -(IBAction)btnSubmitClicked:(id)sender; //肯定搜索按钮 //将json 格式的原始数据转解析成数据字典 -(NSMutableDictionary *)dictionaryFromJsonFormatOriginalData:(NSString *)strOriginal; // 将带有去除json数据中的转义字符 -(NSString *)removeEscapeCodeFromString:(NSString *)str; @end

.m文件json

#import "FanWeiandLeiXingViewController.h"

@interface FanWeiandLeiXingViewController ()

@end

@implementation FanWeiandLeiXingViewController
@synthesize strBtnName;
@synthesize strTypeName;
@synthesize arrLeiXing;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // Do any additional setup after loading the view from its nib.
    //初始化
    arrFanWei = [NSMutableArray alloc];
    self.arrLeiXing = [[NSArray alloc]init];
    rowCount = 0;
    
    /*
       获取须要显示的数据
     */
    if ([self.strBtnName isEqualToString:@"FanWei"]) {
        NSString *strTemp = [InterfaceHelper getSearchRange];
        NSLog(@"strTemp=====%@",strTemp);
        arrFanWei = [strTemp componentsSeparatedByString:@","];
        NSLog(@"arrFanWei.count====%d",arrFanWei.count);
        rowCount = arrFanWei.count;
    }
    if ([self.strBtnName isEqualToString:@"LeiXing"]) {
        labTitle.text = @"类型筛选";
        labSubTitle.text = @"类型:";
        if ([self.strTypeName isEqualToString:@"QuanChengJingDian"]) {
            strOriginal = [InterfaceHelper getHotelETCSecondLevelDirectoryByTypeId:@"2"];
        }else if([self.strTypeName isEqualToString:@"QuanChengZhuSu"]){
            strOriginal = [InterfaceHelper getHotelETCSecondLevelDirectoryByTypeId:@"1"];
        }else if ([self.strTypeName isEqualToString:@"YuLe"]) {
            strOriginal = [InterfaceHelper getHotelETCSecondLevelDirectoryByTypeId:@"5"];
        }else if ([self.strTypeName isEqualToString:@"JiNanMeiShi"]) {
            strOriginal = [InterfaceHelper getHotelETCSecondLevelDirectoryByTypeId:@"3"];
        }else if ([self.strTypeName isEqualToString:@"JiNanGouWu"]) {
            strOriginal = [InterfaceHelper getHotelETCSecondLevelDirectoryByTypeId:@"4"];
        }
        self.arrLeiXing = [strOriginal componentsSeparatedByString:@","];
        rowCount = self.arrLeiXing.count;
        for (int i=0; i<self.arrLeiXing.count; i++) {
            NSLog(@"[arrLeiXing objectAtIndex:%d]=====%@",i,[arrLeiXing objectAtIndex:i]);
        }
      }
    
    //初始化
    commonTableView = [[UITableView alloc]initWithFrame:CGRectMake(10, 85, 300, 370)];
    commonTableView.delegate = self;
    commonTableView.dataSource = self;
    commonTableView.layer.borderWidth = 1;        //为table view 设置边框
    commonTableView.layer.borderColor = [[UIColor groupTableViewBackgroundColor]CGColor];
    commonTableView.separatorColor = [UIColor groupTableViewBackgroundColor];  //设置分割线的颜色
//    [commonTableView setBackgroundColor:[UIColor blackColor]];
    [self.view addSubview:commonTableView];
    
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(IBAction)btnBack:(id)sender
{
    [self.view removeFromSuperview];
}
-(IBAction)btnSubmitClicked:(id)sender    //肯定搜索按钮
{
    
}

#pragma -mark TableViewDelegateMethods

//组的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

//行数
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return rowCount;
}

//各项的高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 40 ;
}

//每一个单元行中的内容
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdetify = @"cell";
    UITableViewCell *tvCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdetify] autorelease];  
    tvCell.selectionStyle = UITableViewCellSelectionStyleGray;
    
    if ([self.strBtnName isEqualToString:@"FanWei"]) {
        /* 展现数据 */
        //开头的图片
        UIImageView *imgDian = [[UIImageView alloc]initWithFrame:CGRectMake(20, 25, 10,10)];
        [imgDian setImage:[UIImage imageNamed:@"radiobutton1.png"]];
        [tvCell addSubview:imgDian];
        
        //内容   
        UILabel *labName = [[UILabel alloc]initWithFrame:CGRectMake(40, 0, 200, 60)];
        [labName setTextAlignment:UITextAlignmentLeft];
        [labName setBackgroundColor:[UIColor clearColor]];
        [labName setFont:[UIFont systemFontOfSize:18.0f]];
        [labName setText:[arrFanWei objectAtIndex:indexPath.row]];
        [tvCell addSubview:labName];
        
    }else if ([self.strBtnName isEqualToString:@"LeiXing"]){
        /* 展现数据 */
        //开头的图片
        UIImageView *imgDian = [[UIImageView alloc]initWithFrame:CGRectMake(20, 25, 10,10)];
        [imgDian setImage:[UIImage imageNamed:@"radiobutton1.png"]];
        [tvCell addSubview:imgDian];
        
        //内容   
        UILabel *labName = [[UILabel alloc]initWithFrame:CGRectMake(40, 0, 200, 60)];
        [labName setTextAlignment:UITextAlignmentLeft];
        [labName setBackgroundColor:[UIColor clearColor]];
        [labName setFont:[UIFont systemFontOfSize:18.0f]];
        NSLog(@"2===========%d",indexPath.row);
        [labName setText:[self.arrLeiXing objectAtIndex:indexPath.row]];
        [tvCell addSubview:labName];
    }
    
    return tvCell;
}