UI网络编程

QT6网络编程入门:手把手教你写带UI的TCP服务端(可直接复制源码) 本文基于QT6环境,完整讲解了可视化TCP服务端的开发全流程,从开发环境准备、项目创建、UI界面设计,到核心代码实现、功能解析、编译运行注意事项,再到具体的运行演示,每一步都贴合新手入门需求,代码简洁易懂、注释清晰,可直接复制编译运行。 阅读详情

@interface ViewController ()

{

    UIImageView *_imgView;

    NSMutableData *_mData;

}


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    _imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 100, 100, 100)];

    _imgView.backgroundColor = [UIColor redColor];

    [self.view addSubview:_imgView];

    

    //初始化Data

//    _mData = [NSMutableData data];

    

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


//请求网络,加载图片

/*

 http://a.hiphotos.baidu.com/image/pic/item/342ac65c103853439b0d4d9a9013b07ecb80884f.jpg

 */

- (IBAction)btnClick:(UIButton *)sender {

    

    for (int i = 0; i < 3; i++) {

        //创建imgView

        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 100+ i*100, 100, 100)];

        imgView.backgroundColor = [UIColor purpleColor];

        [self.view addSubview:imgView];

        

        //1、构建URL

        NSURL *url = [NSURL URLWithString:@"http://a.hiphotos.baidu.com/image/pic/item/342ac65c103853439b0d4d9a9013b07ecb80884f.jpg"];

        

        //2、构建请求对象

        //NSURLRequest为不可变对象

        //    NSURLRequest *request = [NSURLRequest requestWithURL:url];

        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

        [request setURL:url];

        //设置请求方式

        [request setHTTPMethod:@"GET"];

        //设置请求超时的时间

        [request setTimeoutInterval:60];

        

        //3、构建连接对象,并且发送

        

        //同步请求

        NSURLResponse *response = nil;

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

        

        NSLog(@"data is %@", data);

        NSLog(@"response is %@", response);

        

//        [_imgView setImage:[UIImage imageWithData:data]];

        [imgView setImage:[UIImage imageWithData:data]];

    }

    

    

    

    

}


//异步请求网络

- (IBAction)buttonASynAction:(id)sender {

    //清空数据

    _mData = [NSMutableData data];

    

    //1、构建URL

    NSURL *url = [NSURL URLWithString:@"http://a.hiphotos.baidu.com/image/pic/item/342ac65c103853439b0d4d9a9013b07ecb80884f.jpg"];

    

    //2、构建请求对象

    //NSURLRequest为不可变对象

    //    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setURL:url];

    //设置请求方式

    [request setHTTPMethod:@"GET"];

    //设置请求超时的时间

    [request setTimeoutInterval:60];

    

    //3、构建连接对象,发送异步请求

    //第一种方式

    //创建一个线程队列

//    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

//    [NSURLConnection sendAsynchronousRequest:request

//                                       queue:queue

//                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

//                               /*

//                                response:包含了服务器的响应信息

//                                data: 加载完之后的数据

//                                connectionError: 如果请求失败了,包含了失败的信息

//                                */

//                               if (connectionError) {

//                                   NSLog(@"网络请求失败,error is %@", connectionError);

//                                   return;

//                               }

//                               

//                               //回到主线程进行UI刷新的操作

////                               [self performSelectorOnMainThread:<#(SEL)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]

//                               dispatch_async(dispatch_get_main_queue(), ^{

//                                   _imgView.image = [UIImage imageWithData:data];

//                               });

//                               

//                           }];

    

//    //第二种方式

//    NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];

//    //取消网络请求

////    [connection cancel];

    

    //第三种方法

//    [self performSelectorInBackground:<#(SEL)#> withObject:<#(id)#>]

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        NSURLResponse *response = nil;

        NSData *data = [NSURLConnection sendSynchronousRequest:request

                              returningResponse:&response

                                          error:nil];

        dispatch_async(dispatch_get_main_queue(), ^{

            _imgView.image = [UIImage imageWithData:data];

        });

    });

    

    

}



#pragma mark -NSURLConnectionDelegate(父协议)

#pragma mark -NSURLConnectionDataDelegate(子协议)

#pragma mark -NSURLConnectionDownloadDelegate(子协议)

//已经与服务器进行了连接

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

{

    NSLog(@"didReceiveResponse: response is %@", response);

}


//已经开始接收数据了,这个方法会调用多次

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

{

    NSLog(@"已经接收到数据了");

    [_mData appendData:data];

}


//已经完成了连接,此方法调用时,所有数据都已经接收完成

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    NSLog(@"连接完成");

    _imgView.image = [UIImage imageWithData:_mData];

}



@end


19、网络连接、数据处理与用户界面开发全解析 本文详细解析了网络编程和用户界面开发的核心概念与实践应用。在网络编程部分,介绍了使用 NSNetService 进行服务的解析与发布、异步网络 API 的使用以及网络数据处理方法;在用户界面开发部分,深入探讨了模型-视图-控制器(MVC)范式、窗口、面板、视图和控件的实现机制,并展示了如何将网络服务与用户界面结合进行实际应用开发。文章旨在帮助开发者掌握构建功能全面、用户体验良好的应用程序的关键技术。 阅读详情

相关推荐

Swift UI下载工具:使用Aria2实现的高效下载应用

Swift是苹果公司推出的编程语言,用于iOS、macOS、watchOS和tvOS应用的开发。它以其安全性和性能优势受到开发者青睐,逐渐成为Apple生态系统中的主流开发语言。Aria2是一个轻量级的多协议和多源命令行下载实用工具。它支持HTTP/HTTPS, FTP, SFTP, BitTorrent和Metalink等多种协议。Aria2工作原理是通过多线程下载,分配多个连接到单个或多个服务器,从而提高下载速度。

weixin_29301059的博客 809

IOS实训周报-1:UI编程、本地存储和网络编程

本周实训学习内容UI编程常用UI控件IOS绘图ViewController本地存储IOS沙盒机制文件目录获取及读写管理NSUserDefaults网络编程HTTP基础NSURLSessionAFNetworking UI编程 UI元素是我们应用程序里可以看见的任何可视元素,其中一些元素响应用户的操作,如按钮、文本字段,有其他的丰富内容,如图像、标签等。 在应用程序中编辑UI控件主要通过界面生成器...

chocoboeater的博客 349

模仿酷狗音乐UI界面:Qt完整实现指南

布局管理器是管理窗口内控件位置和大小的重要工具,Qt Designer提供了多种布局选项:水平布局(QHBoxLayout):控件按水平线排列。垂直布局(QVBoxLayout):控件按垂直线排列。网格布局(QGridLayout):控件分布在网格中,可以定义行列。表单布局(QFormLayout):适合创建表单,控件排成两列,标签在左侧,控件在右侧。除了使用这些内置的布局外,还可以通过布局管理器的自定义选项来实现更复杂的布局设计。

weixin_35677363的博客 487

UI_网络编程

什么是网络编程? 为什么要学习网络编程? 网络编程主要做什么事情? 什么是C/S模式?什么又是B/S模式?跟我们有什么关系? client server browser server 对于我们来说,网络编程难学吗? 在百度输入一个文字搜索后,都做了哪些事情? // 119.75.217.109 6.1 打开浏览器,输入百度的地址,按下回车 6.2 获取到了数据,浏览器解析数据,显示出来

Kohler'Space 370

全面Visual C++开发实践指南:C++ UI界面与网络编程

Visual C++是Microsoft推出的一款集成开发环境(IDE),它提供了一整套工具来设计、编码、测试和调试应用程序。开发者可以使用它提供的MFC(Microsoft Foundation Classes)库来简化GUI元素的创建和管理,同时可以利用ATL(Active Template Library)进行COM编程。虽然标准控件足够满足大多数场景,但有些特殊需求需要自定义控件。自定义控件的开发包括继承标准控件类,然后重写其绘制函数和消息处理函数。

weixin_42527589的博客 853

C#实现梦幻西游风格用户界面项目

Windows Forms是.NET框架下的一个图形用户界面库,允许开发者创建基于Windows平台的桌面应用程序。这一库提供了丰富的控件,如按钮、文本框、列表框等,可以用来构建各种界面元素。Windows Forms库的控件可以响应用户的交互,比如点击按钮后触发一个方法。通过理解Windows Forms,开发者可以构建出功能完善、外观和行为符合Windows应用程序规范的界面。它是实现快速界面开发的一个有效工具,并且能够与其他.NET技术如C#紧密集成。

weixin_42509720的博客 1047

UI_17 网络编程

为什么80%的码农都做不了架构师?>>> ...

weixin_34114823的博客 114

在线迭代RLHF实战:从原理到实现,复现超越官方指令模型的工作流

大语言模型(LLM)的对齐技术是提升其与人类意图一致性的关键。其中,基于人类反馈的强化学习(RLHF)通过引入人类偏好信号,指导模型优化生成策略,是实现模型“有用”与“无害”的核心方法。其技术价值在于将抽象的“对齐”目标转化为可优化的奖励信号,从而显著提升模型在对话、推理等任务中的表现。然而,传统的离线RLHF存在数据分布偏移和奖励黑客等瓶颈。在线迭代RLHF通过构建“生成-评估-学习”的动态数据循环,让模型能够利用自身最新生成的数据进行持续优化,有效克服了上述问题,成为当前提升指令模型性能的前沿方向。本文

weixin_28725037的博客 368

blackberry平台J2ME编程指南(八)

2.5 GUI<br />J2SE提供了丰富的UI组件也强大的UI展示技术,甚至可以java代码通过applet植入到web页面中。<br /><br /><br /><br /><br /><br />在标准的J2ME编程中,我们放弃掉了大量需要消耗系统资源的UI支持,转而针对小型的终端设计了一个特殊的包<br /> <br />由于在MIDP手机编程中,没有控制台的概念,所以所有的MIDP手机软件都必须有自己的界面,下面就熟悉一下MIDP的界面类体系。<br /> <br />首先说明的是,MIDP的标

salvatore_zhang的黑莓开发专栏 1285

Jlink除了调试还能干啥?用JFlash SPI给W25Q64烧录固件的5个实用技巧

本文深入探讨了Jlink的隐藏功能,特别是通过JFlash SPI高效烧录W25Q64的5个进阶技巧。从硬件连接优化到批量处理脚本,再到数据安全验证,这些技巧能显著提升烧录速度和稳定性,适用于量产环境。文章还提供了详细的参数配置和脚本示例,帮助工程师充分发挥Jlink的潜力。

weixin_29164843的博客 409

CANoe实战:LIN Slave一致性测试全流程解析

本文详细解析了使用CANoe进行LIN Slave一致性测试的全流程,包括测试概述、环境搭建、模块集成、测试用例详解及报告分析。通过实际案例分享,帮助工程师掌握LIN 2.0/2.1/2.2、SAE J2602和ISO 17987等标准的自动化测试方法,提升汽车电子从节点的可靠性和兼容性验证效率。

weixin_42665725的博客 533

iOS UI 15 网络编程2

// //  RootViewController.m //  UI - 15网络编程 // //  Created by dllo on 15/11/27. //  Copyright (c) 2015年 dllo. All rights reserved. // #import "RootViewController.h"

揽月清风 281

基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践指南

本文详细介绍了基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践方法。通过搭建仿真模型、设计扰动注入策略和FFT分析,精确提取阻抗特性,有效预测系统稳定性,为新能源并网系统设计提供可靠指导。

gold的博客 775

UI网络编程:get和post

GCD界面刷新:        dispatch_async(dispatch_get_main_queue(),block); http请求方式分为: get:索取数据。只有请求头 post:提交数据。包含请求头和请求体 UI界面得渲染育刷新在主线程中执行,主线程不流畅会导致卡顿。       //1.     NSURL *url = [NSURL URLWithString:@"ht

我的心里没有你也没有她 287

FPGA开发者必看:手把手教你用Xilinx ERNIC IP实现RoCE v2网络加速(附PG332文档解读)

本文详细解析了Xilinx ERNIC IP在FPGA平台上实现RoCE v2网络加速的全流程,包括架构设计、Vivado工程配置、驱动开发与性能调优。通过PG332技术文档的实践指导,帮助开发者快速构建低延迟、高性能的网络加速方案,适用于数据中心和边缘计算场景。

weixin_29168813的博客 670

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

王老师青少年编程 989

android 网络编程 之 子线程和UI线程通信

1、主线程中定义Handler:  [java] view plain copy "font-size:18px;">Handler mHandler = new Handler() {              @Override           public void handleMessage(Message msg) {     

z_x_Qiang的博客 666

自然语言处理(扩展学习1):Scheduled Sampling(计划采样)与Teacher forcing(教师强制)

作者:安静到无声作者简介:人工智能和硬件设计博士生、优快云与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇。o( ̄▽ ̄)d。

安静到无声 2143

随意细解:UI -- 网络编程

网络编程--GET请求方式(同步、异步)、POST请求方式(同步、异步)及区别

M_MU_U的博客 585

化工热力学软件:Aspen Plus二次开发_(9).过程控制与动态模拟v1

Aspen Plus 提供了丰富的过程控制工具和方法,可以用于静态和动态过程的模拟和控制策略的开发。通过控制回路设计、动态模拟、优化工具和数据交换接口,用户可以设计和优化各种复杂的控制策略,提高化工生产的稳定性和效率。此外,结合外部软件(如MATLAB、Simulink、LabVIEW等),可以实现更高级的控制策略,如自适应控制和模型预测控制,进一步提升过程控制的精度和灵活性。希望本文的内容能帮助用户更好地理解和应用Aspen Plus中的过程控制功能。

kkchenjj的博客 405

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android网络编程1

网络编程1 1.基本理解 ​ httpurlconnection:用于发送或接收数据 ​ ScrollView只能有一个子组件 2.消息机制的写法 ​ 【1】anr Application not respond 应用无响应 主线程(UI线程) ​ 【2】如果在主线程中进行了耗时的操作(比如连接网络、拷贝大量数据、Thread.sleep() )就会报anr ​ 【3】为了避免anr 可以把耗时...

qq_41973873的博客 323

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Day07 图形用户界面初步 网络编程

十.Swing中的线程 初始化线程 用于创建各种容器,组件,一旦创建并显示,初始化线程就结束了 事件调度线程 监听相类似的事件 长耗时任务线程 访问数据库类似的需要长时间的操作 十一.皮肤 下载jar包放在lib中,然后在eclipse中导包 javax.swing.UIManager.setLookAndFeel("com.birosoft.**...

ambition 158

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

学习J2ME编程需要掌握的七种技术

学习J2ME编程需要掌握的七种技术 1、 高级用户界面是指J2ME编程中用到的Form(窗体)、TextBox(文本框)、List(列表框)和Alert(提示信息框)等的使用,以及其中的一些控件的使用,当然也包括相应的事件处理。应用在一般的如登陆窗体、关于窗体和提示等。2、 低级用户界面低级用户界面指Canvas类和Graphics类等的使用,以及相应的事件处理,应用与游戏编程以及特殊界面

xiaeagle的专栏 230

python图形用户界面设计报告_19.1 Python图形用户界面开发工具包

,赠送一本“Python相关图书”。咨询方式:加【51CTO-关老师付费群】523714201 验证消息:咨询赠书本视频采用**Python 3.X版本书是智捷课堂开发的立体化图书中的一本,所谓“立体化图书”就是图书包含:书籍、视频、课件和服务等内容。其中第三篇包括6章。内容包括数据交换格式,数据库编程,网络编程,wxPython图形用户界面编程,多线程编程和游戏开发引擎。通过本篇的学习,读者可以...

weixin_39741101的博客 551
上一篇: BaseModel
下一篇: TCP
lanxiaoni
博客等级 码龄12年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值