😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍XCode创建firstapp并运行
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. 提前准备
    • :blush:2. 环境安装与配置
    • :satisfied:3. 应用示例

😏1. 提前准备

一直对IOS开发心心念念,自从买了macbook后一直也没有尝试,最近有空就折腾了一下,也把过程中遇到的问题记录一下

在这里插入图片描述

成为IOS开发者,首先要准备一台Mac电脑(笔记本台式机都可以);要开发App的话最好有一台Iphone手机(当然没有的话也可以在模拟器运行);要注册好苹果开发者账号(主账号用邮箱,个人不付费也可以在本地调试,要上架App Store就需要付年费了);需要一条原装数据线,手机开启开发者模式(隐私与安全性)。

总之,需要准备的就是以下几个东西:

  • Mac电脑
  • iphone手机
  • 注册开发者账号
  • 原装数据线
  • 打开开发者模式

😊2. 环境安装与配置

类似微信开发者工具,要开发IOS应用也有专门的编译环境,这里是XCode。

在这里插入图片描述

安装好后,需要在Setting中的Accounts中登陆自己的个人或公司账号,其他的设置项后面我们慢慢了解。

创建新项目,选择ios-app:

在这里插入图片描述

默认设置进入项目后,右侧会有预览框,后续关掉后也知道在哪里打开:

在这里插入图片描述

要连接真机调试,可以在顶部的工程框进入Manage Run Destinations,用数据线将手机和电脑连接,同意一些权限后,就可以在这里看到自己的iOS Device了,预览框也可以选择自己的真机,会默认下载一个Xcode Previews到手机上。(如果第一次预览有问题,可以清空项目Clean Build Folder重新编译一下)

在这里插入图片描述

预览过后,可以点击Run,会安装app到手机端,这样体验更好。

在这里插入图片描述

😆3. 应用示例

下面创建一个简单的BMI计算器应用。

在这里插入图片描述

ContentView

//
//  ContentView.swift
//  firstapp
//
//  Created by lemon on 2025/7/6.
//import SwiftUIstruct ContentView: View {@State private var height: Double = 0@State private var weight: Double = 0@State private var bmi: Double = 0@State private var showAlert: Bool = falsevar body: some View {VStack {Text("BMI 计算器").font(.largeTitle).padding()VStack(alignment: .leading) {Text("身高 (cm):").font(.headline)TextField("请输入身高", value: $height, format: .number).padding().keyboardType(.decimalPad).border(Color.gray)Text("体重 (kg):").font(.headline)TextField("请输入体重", value: $weight, format: .number).padding().keyboardType(.decimalPad).border(Color.gray)}.padding()Button(action: {if height > 0 && weight > 0 {bmi = weight / ((height / 100) * (height / 100))} else {showAlert = true}}) {Text("计算 BMI").font(.headline).foregroundColor(.white).padding().background(Color.blue).cornerRadius(10)}.padding().alert(isPresented: $showAlert) {Alert(title: Text("输入错误"), message: Text("请输入有效的身高和体重"), dismissButton: .default(Text("确定")))}if bmi > 0 {Text("您的 BMI 是: \(String(format: "%.2f", bmi))").font(.title).padding()}}.padding()}
}#Preview {ContentView()
}

请添加图片描述

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87851.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87851.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/87851.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

class类和style内联样式的绑定 + 事件处理 + uniapp创建自定义页面模板

目录 一.class类的绑定 1.静态编写 2.动态编写 二.style内联样式的绑定 三.事件处理 1.案例1 2.案例2 四.uniapp创建自定义页面模板 1.为什么要这么做? 2.步骤 ①打开新建页面的界面 ②在弹出的目录下,新建模板文件 ③用HBuilderX打开该模板…

android 卡顿和丢帧区别

Android 卡顿(Jank)与丢帧(Frame Drop)的核心区别在于问题本质与用户感知,以下是分层解析: ️ 一、本质差异 维度卡顿(Jank)丢帧(Frame Drop)定义用户可感知…

【python实用小脚本-125】基于 Python 的 Gmail 邮件发送工具:实现高效邮件自动化

引言 在现代办公和开发环境中,邮件通信是一种重要的沟通方式。自动化发送邮件可以大大提高工作效率,例如发送通知、报告或文件。本文将介绍一个基于 Python 的 Gmail 邮件发送工具,它能够通过 Gmail 的 SMTP 服务器发送邮件,并支持…

gateway断言配置详解

一、Predicate - 断⾔ 1、简单用法 spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After2017-01-20T17:42:47.789-07:00[America/Denver] 2、自定义断言 新建类VipRoutePredicateFactory,注意VipRoutePredicateFactory名字…

基于大模型的尿毒症全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、尿毒症相关理论基础 2.1 尿毒症的定义、病因与发病机制 2.2 尿毒症的症状与诊断标准 2.3 尿毒症的治疗方法概述 三、大模型技术原理与应用 3.1 大模型的基本概念与发展历程 3.2 大模型…

裸金属服务器租用平台-青蛙云

企业对服务器性能与灵活性的要求与日俱增。青蛙云M-启强裸金属服务器租用平台应运而生,为企业提供了一种兼具物理机性能和云计算弹性的解决方案。裸金属服务器租用平台的优势​(一)高配性能,无虚拟化开销​裸金属服务器直接运行在物理硬件之上&#xff0…

[Terence Tao访谈] AlphaProof系统 | AI嗅觉 | 研究生学习 | 庞加莱猜想(高维) | 复杂问题简单化

玩这些有趣的东西。通常情况下什么也得不到,你必须学会说:“好吧,再试一次,什么都没发生,我会继续前进。” DeepMind的AlphaProof系统 Q:DeepMind的AlphaProof系统是通过强化学习训练的,使用的…

Aseprite工具入门教程4之动画导入Unity

1、时间轴功能 (1)眼睛图标 显示/隐藏图层图层隐藏时无法绘制 (2)锁定图标 锁定后无法移动或编辑图层防止意外在错误图层上绘制 (3)单元格图标 两个点代表帧分开,一个椭圆代表帧统一。分开就…

移动硬盘频繁提示格式化?解决异常故障的正确方法

移动硬盘作为数据存储的重要工具,不少人都习惯将照片、文档、项目资料甚至整台电脑的备份都放在里面。但有时,一件令人头疼的事悄然发生: 插上硬盘,系统却突然提示:“使用驱动器中的光盘之前需要将其格式化。是否要将…

Java泛型笔记

1 为什么需要泛型 Java5之前,是没有泛型的。通过两段代码我们就可以知道为何我们需要泛型 public int addInt(int a, int b) {return a b; }public double addDouble(double a, double b) {return a b; } 实际开发中,经常有数值类型求和的需求&…

mysql 图形化界面工具 DataGrip 安装与配置

安装地址: Download DataGrip: Cross-Platform IDE for Databases & SQLhttps://www.jetbrains.com/datagrip/download/?sectionwindows 添加数据源: 下载驱动文件:直接点击下载即可 点击测试连接:成功后点击确定 显示所有数…

linux下进程之间socket通信c程序例程

以下是一个基于 Linux 的 C 程序示例,展示了如何使用 Unix 域套接字(Unix domain socket)在不同进程之间互传 JSON 消息。我们将实现一个简单的客户端 - 服务器模型,服务器监听连接,客户端连接到服务器并发送 JSON 消息…

高云GW5AT-LV60 FPGA图像处理板|MIPI摄像头帧率测试

高云GW5AT-LV60 FPGA图像处理板套件中附带了三个摄像头模组,这三个模组真是各有千秋,接下来我通过简单的一些测试来看看这几个摄像头的差异。 VS-SC130GS 、 VS-SC2210 这两个模组是手动对焦,在使用时需要手动转动镜头调整焦距,这…

机器学习在智能能源管理中的应用:需求响应与可再生能源整合

随着全球能源需求的不断增长和环境问题的日益突出,智能能源管理成为实现可持续发展的关键。智能能源管理系统通过整合先进的信息技术,如物联网(IoT)、大数据和机器学习,能够优化能源的分配和使用,提高能源效…

【网络】Linux 内核优化实战 - net.ipv4.tcp_timestamps

目录 net.ipv4.tcp_timestamps 详解1. 功能与作用2. 参数取值与含义3. 启用/禁用的影响4. 配置方法5. 适用场景建议6. 注意事项总结 net.ipv4.tcp_timestamps 详解 net.ipv4.tcp_timestamps 是 Linux 内核中一个与 TCP 协议相关的网络参数,用于控制是否启用 TCP 时…

第一个Flink 程序:词频统计 WordCount(流处理)

本文重点 本文将通过一个统计词频的小程序来看一下flink是如何对数据进行批处理的,需要声明的是,一般我们使用Flink常常用于流式处理,即使是有界的数据,我们也将其看成是无界数据进行流式处理,所以批量处理并不是很常用,这里只是为了了解一下Flink是如何进行批处理的。 …

在 Kodi 中添加 AList 搭建 WebDav 的方法

文章目录 一、问题背景二、使用方法(一)开启 AList 的 WebDav(二)在 Kodi 添加 WebDav1. 打开设置跳转到媒体设置添加指定类型的媒体库2. 选择添加媒体库3. 添加新的网络位置 一、问题背景 AList 是一种使用 Gin 和 Solidjs 编写…

DAY 49

CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能…

LLM:位置编码详解与实现

文章目录 前言一、绝对位置编码二、相对位置编码三、旋转位置编码 前言 由于attetnion运算的特性,Transformer本身不感知顺序,位置编码是弥补这一缺陷的关键。 一、绝对位置编码 绝对位置编码的方式是通过将每个位置映射到一个高维空间中,该…

pytorch学习-10.卷积神经网络(基础篇)

2.线性模型 3.梯度下降算法 4.反向传播(用pytorch算梯度) 5.用pytorch实现线性回归 6.logistic回归 7.处理多维特征的输入 8.加载数据集 9.多分类问题 10.卷积神经网络(基础篇)_哔哩哔哩_bilibili 10.1卷积神经网络 10.1.1 卷积神经网络工作流程&…