一个项目学习IOS开发---创建一个IOS开发项目

news2024/11/23 20:34:24

前提:

由于IOS开发只能在MacOS上开发,所以黑苹果或者购买一台MacBook Pro是每个IOS开发者必备的技能或者工具之一

Swift开发工具一般使用MacOS提供的Xcode开发工具

首先Mac Store下载Xcode工具

 安装之后打开会提醒你安装IOS的SDK,安装好之后就是这个界面了

我们创建一个项目Create New Project....

选择IOS ->App

项目名称Product Name自己谢谢,例如我们开发一个Weibo的Demo

Team是你的team,自己注册或者不选也行

Organization Identifier 写你的组织名称,这个组织名称在IOS平台上架时候,所有的这个名称是不允许重复的,当然我们自己练习就无所谓了,其他的Interface选择SwiftUI 是IOS首选的开发语言 Language现在只能选Swift了,Storage可以选也可以不选,先选上,万一用得到然后Next

进来之后他会给你一个Demo

上面主要是介绍了如何使用Swift在Swift Data里面增删查改

大体意思呢如下:

//  ContentView.swift
//  WeiboDemo
//
//  Created by YuJun on 2024/6/29.
//

import SwiftUI
import SwiftData
//IOS中凡是看得到的东西都是View
struct ContentView: View {
    //获取 IOS 的模型上下文,用于处理数据的增删查改操作
    @Environment(\.modelContext) private var modelContext
    //通过查询获取一个名为'items'的数组,其中元素类型为'Item'
    @Query private var items: [Item]

    //定义视图的主体内容
    var body: some View {
        NavigationSplitView {
            //声明一个列表视图
            List {
                //对'items'数组进行遍历
                ForEach(items) { item in
                    //创建一个导航链接
                    NavigationLink {
                        //导航链接点击后的视图,显示一个文本
                        Text("Item at \(item.timestamp, format: Date.FormatStyle(date:.numeric, time:.standard))")
                        //导航链接在列表中显示的标签
                    } label: {
                        Text(item.timestamp, format: Date.FormatStyle(date:.numeric, time:.standard))
                    }
                }
                //当左滑动时执行'deleteItems'函数
               .onDelete(perform: deleteItems)
            }
           .toolbar {
                //声明工具栏项,放置在导航栏尾部
                ToolbarItem(placement:.navigationBarTrailing) {
                    EditButton()
                }
                ToolbarItem {
                    Button(action: addItem) {
                        Label("Add Item", systemImage: "plus")
                    }
                }
            }
            //详情部分的视图
        } detail: {
            Text("Select an item")
        }
    }

    //添加新项的函数
    private func addItem() {
        withAnimation {
            //创建一个新的'Item'对象,并插入到模型上下文中
            let newItem = Item(timestamp: Date())
            modelContext.insert(newItem)
        }
    }

    //删除项的函数,根据给定的索引集
    private func deleteItems(offsets: IndexSet) {
        withAnimation {
            //遍历索引集,删除对应的项
            for index in offsets {
                modelContext.delete(items[index])
            }
        }
    }
}

//自动预览页的设置
#Preview {
    ContentView()
       .modelContainer(for: Item.self, inMemory: true)
}

如果你没有选SwiftData

那么你得到的文件应该大体是这样的

import SwiftUI
//IOS中凡是看得到的东西都是View
struct ContentView: View {
    //里面看得见的东西
    var body: some View {
        //显示Hellow Swift
       Text("Hellow Swift")
    }
}

//自动预览页
#Preview {
    ContentView()
}

至此一个项目创建完毕

   关注公众号:资小库,问题快速答疑解惑

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

统计信号处理基础 习题解答11-12

题目 证明 的MAP估计量为 其中是一个的矢量, 是一个可逆的p*p的矩阵。也就是说,MAP估计量对可逆的线性变换是可以变换的。 解答 已知的联合概率密度 且: 现在知道: 那么为了获得变换后的MAP,首先需要根据求出 根据概率密度变换…

【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn

【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn HadoopHDFSHDFS架构写文件流程读文件流程 MapReduceMapReduce简介MapReduce整体流程 Yarn Hadoop Hadoop是Apache开源的分布式大数据存储与计算框架,由HDFS、MapReduce、Yarn三部分组成。广义上的Hadoop其实是指H…

Linux中彩色打印

看之前关注下公众号呗 第1部分:引言 1.1 Python在文本处理中的重要性 Python作为一种广泛使用的高级编程语言,以其简洁的语法和强大的功能在文本处理领域占有一席之地。无论是数据清洗、自动化脚本编写,还是复杂的文本分析,Py…

不可编辑的加密word文件破解

文章目录 1 将word文件另存为xml格式2 使用记事本打开xml格式的word文件3 ctrlF查找w:enforcement4 将w:enforcement"1"改成w:enforcement"0"并保存5 用word打开xml格式的文件并另存为docx格式6 成功可以编辑 1 将word文件另存为xml格式 2 使用记事本打开x…

汽车电子行业知识:什么是电子后视镜

文章目录 1.什么是电子后视镜2.有哪些汽车用到了电子后视镜3.电子后视镜的原理及算法4.电子后视镜的优点5.电子后视镜的未来市场将继续增长 1.什么是电子后视镜 电子后视镜是一种集成了电子元件和显示屏的汽车后视镜,用于替代传统的机械后视镜。它通过内置的摄像头捕…

Open vSwitch 行为匹配的实现

一、Datapath 模块的行为匹配 在 Open vSwitch 的数据包转发流程中,存在快速路径和慢速路径两种模式,如下图所示: 其中,快速路径直接在 Datapath 模块完成行为匹配,将数据包转发出去。而慢速路径的数据包无法在 Datapa…

AI大模型到底有没有智能?一篇文章给你讲明明白白

生成式人工智能 (GenAI[1] ) 和大语言模型 (LLM [2] ),这两个词汇想必已在大家的耳边萦绕多时。它们如惊涛骇浪般席卷了整个科技界,登上了各大新闻头条。ChatGPT,这个神奇的对话助手,也许已成为你形影不离的良师益友。 然而&…

一次可输入多张图像,还能多轮对话!最新开源数据集,让AI聊天更接近现实

大模型对话能更接近现实了! 不仅可以最多输入20张图像,还能支持多达27轮对话。可处理文本图像tokens最多18k。 这就是最新开源的超长多图多轮对话理解数据集MMDU(Multi-Turn Multi-Image Dialog Understanding)。 大型视觉语言模…

技术周总结2024.06.17~06.23(Doris数据库)

文章目录 一、06.18 周二1.1) 问题01: doris数据表写入使用 stream load好还是 inser into好 一、06.18 周二 1.1) 问题01: doris数据表写入使用 stream load好还是 inser into好 对于Doris数据表的写入操作,通常推荐…

【折腾笔记】兰空图床使用Redis做缓存

前言 最近发现我部署在群晖NAS上的兰空图床程序在高并发的情况下会导致图片加载缓慢或出现图片加载失败的情况,于是我查阅了官方文档资料并进行了一系列的测试,发现兰空图床如果开启了原图保护功能,会非常的吃CPU的性能,尤其是在…

编译工具-Gradle

文章目录 Idea中配置Gradle项目project目录settings.gradlebuild.gradlegradlewgradlew.bat Gradle Build生命周期编写Settings.gradle编写Build.gradleTasksPlugins Idea中配置 配置项:gradle位置 及仓库位置 Gradle项目 Task,settings.gradle,build.…

【Arduino】实验使用ESP32控制可编程继电器制作跑马灯(图文)

今天小飞鱼实验使用ESP控制继电器,为了更好的掌握继电器的使用方法这里实验做了一个跑马灯的效果。 这里用到的可编程继电器,起始原理并不复杂,同样需要ESP32控制针脚输出高电平或低电平给到继电器,继电器使用这个信号控制一个电…

【SpringBoot】SpringBoot核心启动流程源码解析

SpringBoot总体流程 当我们启动一个SpringBoot程序的时候,只需要一个main方法就可以启动,但是对于其中流程时如何执行的,以及如何调用spring的IOC和AOP机制,本篇带着这个问题来整体体系化的梳理下流程。 SpringBootApplication …

哥斯拉短视频:成都柏煜文化传媒有限公司

哥斯拉短视频:巨兽传奇的视听盛宴 在短视频的海洋中,成都柏煜文化传媒有限公司 有一种特殊的存在总能吸引人们的目光,那就是以哥斯拉为主题的短视频。这些视频以震撼的视觉效果、扣人 ​心弦的剧情和独特的怪兽文化,为我们呈现了…

mysql5.7安装使用

mysql5.7安装包:百度网盘 提取码: 0000 一、 安装步骤 双击安装文件 选择我接受许可条款–Next 选择自定义安装,下一步 选择电脑对应的系统版本后(我的系统是64位),点击中间的右箭头,选择Next 选择安装路径–Next 执行…

Android隐藏状态栏和修改状态栏颜色_亲测有效

本文记录了隐藏状态栏和修改状态栏颜色以及电量、WiFi标志等内容的模式显示,亲测有效。 1、隐藏屏幕状态栏 public void hideStatusBar(BaseActivity activity) {Window window activity.getWindow();//没有这一行无效window.addFlags(WindowManager.LayoutParam…

瑞数(rs6)接口以及源码

测试代码截图如下:调用接口即可直接用 需要dd 有想要学习教程的也能够找我。 如有需求,欢迎+我绿泡泡。 期待你的加入!

Java | Leetcode Java题解之第189题轮转数组

题目: 题解: class Solution {public void rotate(int[] nums, int k) {k % nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end) {whil…

ZYNQ MPSOC烧写问题记录

1、如果带有ARM代码,则ZYNQ MPSOC烧写的烧写是通过ViTIS进行的,通过JTAG模式进行烧写,如下图的PS_MODEx配置成0000,这个只与硬件相关,硬件拉高拉低。 2、如果不带ARM代码,则烧写过程与前版本一致。

PaddleOCR的快速使用

一、简介 PaddleOCR 旨在打造一套丰富、领先、且实用的 OCR 工具库,助力开发者训练出更好的模型,并应用落地。 支持多种 OCR 相关前沿算法,在此基础上打造产业级特色模型PP-OCR、PP-Structure和PP-ChatOCRv2,并打通数据生产、模型…