简介

这是一个使用OC语言,从0使用纯代码方式开发一个iOS平台,接近企业级商业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级商业级项目,目的是让大家,学到真正的企业级商业级项目开发技术。

效果图

安装环境和创建项目

就是使用Xcode,文档里面就不写了。

如何移出SceneDelegate

为什么要移出

  • 有SceneDelgate不能兼容低于iOS 13以下版本,而企业级项目,例如:目前的微信,QQ,抖音,大部分都是兼容到iOS 10,11,甚至有些兼容到9,所以需要学习如果移出,改为旧版本结构。
  • 同时目前公司里面,如果是旧项目,那肯定也就没有SceneDelgate。
  • 有些第三方项目,不兼容有SceneDelgate的项目结构。

移出有什么影响

SceneDelgate是在开发iPad分屏应用是才有实际功能,而我们课程讲解的是通用功能开发,所以没影响。

如何移出

只需要删除相关文件,也就是不使用SceneDelegate;方法如下:

  • 将AppDelegate中Scene生命周期方法删除,并把window属性从SceneDelegate拷贝过来。
  • 将SceneDelegate文件删除。
  • 在info.plist文件中,将Application Scene Manifest

然后重新编译项目就行了;跳转界面就是获取到AppDelegate跳转;移除后兼容的最低版本就可以更改为低于13了,在选中项目->选中Project->Deployment Target。

跳转逻辑

MyCloudMusicStoryboardRemoveSceneDelegate

例如:启动界面跳转逻辑:

[AppDelegate.shared toLoginHome];

实现启动界面布局和功能

布局

使用前面讲解的MyLayout框架实现,其实前面已经实现过了。

显示年

年份可以写死,也可以动态获取,然后显示。

NSInteger year = [SuperDateUtil currentYear];
copyrightView.text=[NSString stringWithFormat:@"Copyright %d Ixuea. All Rights Reserved",year];

实现字符串国际化

创建字符串文件

选中项目目录-New File-Strings File,名称必须为Localizable.strings。

提示:不国际化,也可以用这种方式将代码中字符串写到单独的文件,方便管理。

启用国际化

选中项目Project-Info,在Localiztion中,点击加号,添加要国际化的语言,例如默认有英语,这里添加一个中文简体,然后会弹出一个界面,选择要国际化的文件,这里都选择,最后点击完成;然后上面创建Localizable.strings文件,就可以展开,发现有两个文件,一个是中文简体,一个是英文。

添加字符串

现在要做的就是在这两个文件中添加字符串,这里就把项目中所有字符串全部拷贝过来,因为这个每次用到时再添加浪费时间。

获取字符串

NSString *result=NSLocalizedString(@"Copyright", @"");
result=[NSString stringWithFormat:result,year];
copyrightView.text=result;

如何实时生效

因为目前iOS系统更改语言后,会软重启,所以不存在需要在应用内处理实时生效问题。

应用名称国际化

虽然应用名称也是字符串格式化,但不能写到Localizable.strings,需要写到InfoPlist.strings文件中。

实现

创建InfoPlist.strings文件,并启用国际化,和前面国际化字符串差不多,只是文件名称不一样,name是固定的:

英文文件:

CFBundleName="CloudMusic";

中文简体文件:

CFBundleName="我的云音乐";

运行项目后,在回到桌面,可以看到名称确实实现了国际化。

下次更新全局颜色管理。

iOS OC纯代码企业级项目实战之我的云音乐(持续更新))的更多相关文章

  1. 从0使用Ruby on Rails打造企业级RESTful API项目实战之我的云音乐

    本节对我们项目实现的功能和知识点做一个简单的介绍,因为是RESTful API项目,所以对于后端来说基本上没有什么UI界面可展示,那我们就在关键的点,使用客户端(Android)实现的效果图. 课程简 ...

  2. 【第二版】高仿Android网易云音乐企业级项目实战课程介绍

    这是一门付费Android项目课程,我们只做付费课程:同时也感谢大家的支持. 这一节,对本课程做一个简单介绍,以及放一些项目效果图,如果想直接查看项目视频演示,可以直接在腾讯课堂查看[高仿Androi ...

  3. iOS开发 纯代码创建UICollectionView

    转:http://jingyan.baidu.com/article/eb9f7b6d8a81a5869364e8a6.html iOS开发 纯代码创建UICollectionView 习惯了使用xi ...

  4. OC纯代码全手工打造ScroolView实现翻页

    OC纯代码全手工打造ScroolView实现翻页 1. 概述 分为三部分: 上部标题ScrollView 下部内容ScrollView 上部当前页 标示线 2. 效果 上下两部分都随着手势的滑动一块滑 ...

  5. iOS面试高薪,进阶 你会这些呢嘛?(持续更新中)

    这个栏目将持续更新--请iOS的小伙伴关注!做这个的初心是希望能巩固自己的基础知识,当然也希望能帮助更多的开发者! 基础>分析>总结 面试 iOS常见基础面试题(附参考答案) iOS底层原 ...

  6. 【Android测试】【第十三节】Uiautomator——如何组织好你的测试代码(项目实战)

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4996000.html 前言 前面我们已经了解Uiautom ...

  7. iOS OC开发代码规范

    1.变量.类名.函数名 使用驼峰命名法 2.尽量使用完整的单词命名,尽量不采用 缩写单词 3.类名使用大写字母打头,前缀统一加上HH 例如:HHHomePageController 4.类的成员变量使 ...

  8. iOS - OC Block 代码块

    前言 Block 是一段预先准备好的代码,可以在需要的时候执行,可以当作参数传递.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.Block 是 C 语言的,类似于一个 ...

  9. 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价

         转自: https://blog.csdn.net/eson_15/article/details/51487323 昨天把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部 ...

随机推荐

  1. HCIE笔记-第三节-数据链路层与MAC地址

    如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网数据帧. E2和802.3作用:定义帧头和帧尾的格式. 以太网是现在局域网组网的唯一标准. 数据:对于下层的每个层级而言,上层 ...

  2. Java第十周作业

    1.编写一个方法,实现冒泡排序(由小到大),并调用该方法 package gc; public class gc { /** * @param args */ public static void m ...

  3. pwn 之 沙箱机制

    0x00: 简介 沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向.一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造 ...

  4. [游记] pkusc 2021 游记

    流水账 Day-4 写了ICPC的一道DP,有点细节,虽然写得有点难受,但挺好玩 Day-3 写了PKUSC2018最水的一题 是随机开的题 Day-2 可以去pkusc了,从今天中午开始停课 刚吃完 ...

  5. [没接触过kubevirt?]15分钟快速入门kubevirt

    @ 目录 本文介绍 前言 环境准备 详细版 搭建步骤 安装KubeVirt 安装virtctl客户端工具 创建VirtualMachine 启动VirtualMachineInstance 启动和停止 ...

  6. p2p-tunnel 打洞内网穿透系列(二)TCP转发访问内网共享文件夹

    系列文章 p2p-tunnel 打洞内网穿透系列(一)客户端配置及打洞 p2p-tunnel 打洞内网穿透系列(二)TCP转发访问远程共享文件夹 p2p-tunnel 打洞内网穿透系列(三)TCP转发 ...

  7. os、json、sys、subprocess模块

    os模块 import os 1.创建目录(文件夹) os.mkdir(r'a') # 相对路径 只能创建单级目录 os.makedirs(r'a\b') # 可以创建单级和多及目录 2.删除目录 o ...

  8. crontab和cron表达式详解

    引言 我们在定时任务中经常能接触到cron表达式,但是在写cron表达式的时候我们会遇到各种各样版本的cron表达式,比如我遇到过5位.6位甚至7位的cron表达式,导致我一度搞混这些表达式.更严重的 ...

  9. 羽夏 MakeFile 简明教程

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.该文章根据 GNU Make Manual 进行汉化处理并作出自己的整理,一是我对 Make 的学习记录,二是对大家学习 MakeF ...

  10. 8┃音视频直播系统之 WebRTC 信令系统实现以及通讯核心并实现视频通话

    一.信令系统 信令系统主要用来进行信令的交换 在通信双方彼此连接.传输媒体数据之前,它们要通过信令服务器交换一些信息,如规范协商 若 A 与 B 要进行音视频通信,那么 A 要知道 B 已经上线了,同 ...