ios-同步下载,异步下载,S…

本文介绍iOS应用中图片的同步与异步加载方法,包括如何使用NSURLConnection进行网络请求,实现图片的下载及进度显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

www.bejson.com json格式化网站


{

        "key1":[

            "a",

            {

                "key2":"value2"

            }

        ]

}


//将内容实例化为字符串对象

   NSString* jasonStr = @"{"key1":["a",{"key2":"value2"}]}";

//将字符串对象转为nsdictionary对象

    NSDictionary* dic = [jasonStr JSONValue];

//从字典里读取出来的value1是一个数组

    NSArray* array = [dic objectForKey:@"key1"];

//从数组中取出对应的dic对象

    NSDictionary* dic2 = [array objectAtIndex:1];

    

    NSLog(@"%@", [dic2 objectForKey:@"key2"];

//-----------------------------------------------------------------------------------------------------------

同步下载

//将本地的文件读取出来后 实例化nsstring对象

NSString* jsonStr = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"douban" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];

//加打印判断一下是否读取成功

    NSLog(@"%@", jsonStr);

    NSDictionary* dic = [jsonStr JSONValue];


    NSArray* entryArray = [dic objectForKey:@"entry"];

    NSDictionary* book1 = [entryArray objectAtIndex:0];

    NSArray* linkArray = [book1 objectForKey:@"link"];

    NSDictionary* urldic = [linkArray objectAtIndex:2];

    NSString* urlStr = [urldic objectForKey:@"@href"];

    

    NSURL* imageUrl = [NSURL URLWithString:@"http://pic1.desk.chinaz.com/file/11.07.10/8/ershiyiyuezmbz47.jpg"   或<@"urlStr">];

    //实例化请求对象

    NSURLRequest* request = [NSURLRequest requestWithURL:imageUrl];

    //nsdata二进制

    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    UIImage* image = [UIImage imageWithData:data];

    UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 150, 150)];

    imageView.image = image;

    

    [self.view addSubview:imageView];

    [imageView release];


//-------------------------------------------------------------------------------------------------------------------------------------------

异步下载


@interface ViewController : UIViewController<NSURLConnectionDataDelegate>{

    UIImageView* imageView;

    NSMutableData* imageData;

    float currentPro;

    float length;

    UIProgressView* proView;

//---------------------------------------


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

    

    imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 250)];

    [self.view addSubview:imageView];

    [imageView release];

    

    UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    button.frame = CGRectMake(100, 260, 100, 40);

    [button setTitle:@"看见我吧" forState:UIControlStateNormal];

    [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button];

    

    imageData = [[NSMutableData alloc] init];

}


- (void)buttonClick{

    NSString* urlStr = @"http://pic4.bbzhi.com/fengjingbizhi/2560x1600gaoqingfengjingbizhi/2560x1600gaoqingfengjingbizhi_350068_13.jpg";

    

    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];

    

    [NSURLConnection connectionWithRequest:request delegate:self];

}


- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

    NSLog(@"开始下载");

    NSHTTPURLResponse* http = (NSHTTPURLResponse*)response;

    NSDictionary* dic = http.allHeaderFields;

    NSString* str = [dic objectForKey:@"Content-Length"];

    length = [str floatValue];

    

    proView = [[UIProgressView alloc] initWithFrame:CGRectMake(50, 400, 220, 50)];

    

    //刚开始为0,progress为1时就到头了

    proView.progress = currentPro / length;

    [self.view addSubview:proView];

    [proView release];

}


//时时调用次函数

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    [imageData appendData:data];

    proView.progress = (float)imageData.length / length;

}

//数据下载完成后调用次函数

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{

    imageView.image = [UIImage imageWithData:imageData];

}


- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

    NSLog(@"error");

}



- (void)dealloc{

    [imageData release];

    [super dealloc];

}









内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值