Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么可以';t我使用“;“强”;或;分配;在这里I';MVC模式下的m编程_Ios_Objective C_Nsstring - Fatal编程技术网

Ios 为什么可以';t我使用“;“强”;或;分配;在这里I';MVC模式下的m编程

Ios 为什么可以';t我使用“;“强”;或;分配;在这里I';MVC模式下的m编程,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我正试图做出一个选择的观点,我有一个充满国家名称的plist。现在,我想通过我的模型加载这些数据,并用我的控制器将它们显示在picker视图上。起初,我使用“assign”和“strong”来描述文件“WXFlagsModel”中的属性“name”,但一旦我开始滚动选择器,程序就崩溃了!然后我试着“复制”,然后一切都很好。有人能告诉我为什么吗?谢谢大家! 1.这是“WXFlagsModel.h”文件的一部分 Xcode告诉我: 线程1:EXC\u错误访问(代码=1,地址=0x20) PS:我不允

我正试图做出一个选择的观点,我有一个充满国家名称的plist。现在,我想通过我的模型加载这些数据,并用我的控制器将它们显示在picker视图上。起初,我使用“assign”和“strong”来描述文件“WXFlagsModel”中的属性“name”,但一旦我开始滚动选择器,程序就崩溃了!然后我试着“复制”,然后一切都很好。有人能告诉我为什么吗?谢谢大家! 1.这是“WXFlagsModel.h”文件的一部分

Xcode告诉我:

线程1:EXC\u错误访问(代码=1,地址=0x20)


PS:我不允许在这里嵌入屏幕截图,所以我只是键入单词。

assign
用于基本类型
strong
用于目标c类类型。请提供崩溃的详细信息,包括异常名称、消息和堆栈跟踪。我打赌崩溃的不是返回语句。代码中有任何警告吗?
        #import <Foundation/Foundation.h>

@interface WXFlagsModel : NSObject

@property (copy ,nonatomic) NSString *name;

@property (strong,nonatomic)NSString *icon;

-(instancetype)initWithDict:(NSDictionary*)dict;

+(instancetype)flagsWithDict:(NSDictionary*)dict;

+(NSArray*)flags;

@end
#import "ViewController.h"
#import "WXFlagsModel.h"

@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (nonatomic,strong) NSArray *flags;
@end

@implementation ViewController

#pragma mark - lazy loading
-(NSArray *)flags
{
    if (_flags == nil) {
        NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"flags.plist" ofType:nil]];
        
        NSMutableArray *arrayM = [NSMutableArray array];
        for (NSDictionary *dict in array) {
            WXFlagsModel *model = [WXFlagsModel flagsWithDict:dict];
            
            [arrayM addObject:model];
        }
        _flags = arrayM;
    }
    return _flags;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSLog(@"%@",self.flags);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - picker view delegate

#pragma mark - picker view data source
// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return self.flags.count;
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
//    WXFlagsModel *flag = [WXFlagsModel new];
    WXFlagsModel *flag = self.flags[row];
    return flag.name;
}


#pragma  mark - private methods

@end
return flag.name;