IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> iOS 开发基础,HR的话扎心了 -> 正文阅读

[移动开发]iOS 开发基础,HR的话扎心了

在App安装过程中,系统为每个App生成它的主目录和一些关键的子目录,通常的路径为:

/ApplicationRoot/ApplicationID/

App包(Application Bundle)

在编译App时,Xcode将它整理为一个包(Bundle)。App包是文件系统中的一个目录,将相关的文件都集中到一个地方。App包里主要包括了App的可执行文件和资源文件等。

App包的典型成份:

  • MyApp.app 可执行文件

  • Icon.png App图标

  • MainWidow.nib 主窗口xib文件

  • Default.png 加载时图片

  • iTunesArtwork iTunes图片

  • Info.plist 配置文件

  • Resource files 资源文件

Info.plist:

这里写图片描述

限制条件

  • 显示面积

  • 尽可能少而紧凑的界面元素

  • 足够大的交互控件

  • 文件大小

  • 有限的存储空间

  • 下载的时间和费用

  • 资源加载速度

  • 内存空间

  • 128M,更少的程序运行空间

  • 内存管理和优化

  • 避免过高质量的图片和音频

  • 运行限制

  • 一次只有一个前台程序

  • 不可开发后台运行的程序

  • 程序运行时间不得超过5秒钟

  • 数据访问

  • 不能使用其他App中的静态类库

  • 不能访问沙盒以外的任何文件,也不能把沙盒内的文件共享出去

  • 可以通过特定的API访问一些系统资源,如图片库、地址簿等

  • 在有网络链接时可以访问网络资源

  • 能量消耗

  • CPU负载

  • 发热,电池消耗过快

  • 算法优化

  • 用户使用习惯

  • 快速启动,短暂使用

  • 随时可能退出

  • 避免多余的“帮助”

  • 自动保存

Hello,There App

1.Create a new Xcode project:

这里写图片描述

2.Single View Application

这里写图片描述

3.Options for new project:

这里写图片描述

4.选择项目存放路径,然后生成了如下的项目结构:

这里写图片描述

5.然后编辑Main.storyboard(故事板?),选择ViewController

这里写图片描述

6.拖动Lable对象到Main.storyboard上面,双击可以编辑,改成我们需要的文字即可

这里写图片描述

运行效果:

这里写图片描述

2015-04-15



  • iOS模拟器不支持依赖于硬件的特性,如加速计和摄像头功能。也不支持将d应用程序下载到实际的iOS设备中,也不能在AppStore上分发应用程序。

  • 注册iOS开发者:

  • 99美元/年

  • 299美元/年

  • Cocoa Touch使用的是Objective-C 2.0,但该语言的一个关键特性在iOS中并不可用:垃圾回收。

2015-04-17



  • OC是在C语言的基础之上,增加了一层最小的面向对象语法。因为OC是基于C语言的,所以完全兼容C语言,甚至C++

  • OC没有包名(命名空间)的概念,开发人员给类名加上前缀,放置类名冲突

  • 为了防止与C语言、C++关键字冲突,OC关键字都以@开头。

  • 语法要点:

  • 基本数据类型:char,int,float,double,BOOL(YES\NO)

  • nil相当于Java中的null

  • self相当于Java的this

  • for循环快速遍历fot(xx in xx)

  • 基类 NSObject

  • 继承:单继承,用super关键字引用父类对象

  • 异常处理 @try @catch @finally

  • 注释: // 和 /……/

  • 日志输出:NSLog{@”Hello”}; NSLog{@”Age is %i”,23};

第一个OC程序:

Automatic Reference Counting(ARC)自动加释放内存代码

  • import相比include,防止重复包含。include的头文件(*.h)里需要添加:

#ifndef ___OC___Header_h

#define ___OC___Header_h

#endif

import不需要添加以上代码。

1.OS X>Application>Command Line Tool

这里写图片描述

2.Type:Founction

这里写图片描述

3.代码

这里写图片描述

4.运行效果

这里写图片描述

  • OC类包含两个文件:

  • .h 类的声明文件,用于声明变量,方法(函数)

  • .m 类的实现文件,用于实现.h中的方法

  • 类的声明使用关键字 ‘@interface @end

  • 类的实现使用关键字@implementation @end

  • 新建一个OC类:

1.右键Project,New File,然后iOS>Cocoa Touch>Objective-C class

2.输入类名,继承父类NSObject

这里写图片描述

3.生成代码ZMSClass.h和ZMSClass.m:

这里写图片描述这里写图片描述

4.OC用冒号(:)表示继承,如:

/*

  • ZMSClass.h

*/

#import <Foundation/Foundation.h>

@interface ZMSClass : NSObject{

// 成员变量定义到大括号之内

int number;

//float time;

}

// 静态方法(+):用类名调用的方法;

// 动态方法(-):用对象调用的方法

// number的Get方法,不实现

  • (int)number;

// - (float)time;

// number的Set方法,不实现

  • (void)setNumber:(int)newNumber;

// - (void)setNumber:(int)newNumber setTime:(float)newTime;

@end

  • OC在.h中声明的所有方法都是公共的

  • OC中一个冒号对应接收一个参数

/*

  • ZMSClass.m

  • /

#import “ZMSClass.h”

@implementation ZMSClass

  • number{

NSLog(@"调用了num

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

ber的get方法");

return number;

}

// -time{

// NSLog(@“调用了time的get方法”);

// return time;

//}

  • (void)SetNumber:(int)number{

number = newNumber;

NSLog(@“调用了number的set方法”);

}

// - (void)setNumber:(int)newNumber setTime:(float)newTime{

// number = newNumber;

// time = newTime;

// }

@end

  • 创建一个ZMSClass对象:

  • 1.调用一个静态方法+(id)alloc来分配内存,用指针进行接收

  • 2.调用一个动态方法-(id)init进行初始化

/*

  • main.m

  • /

#import <Foundation/Foundation.h>

#import “ZMSClass.h”

int main(int argc, const *argv[])

{

@autorelasepool{

// 用指针存储对象的地址

ZMSClass *zms = [ZMSClass alloc];

zms = [zmsClss init];

// 以上两行可以简写为:

// ZMSClass *zms[[ZMSClass alloc] init]

[zmsClass setNumber:55];

int number = [zms number];

NSLog(@“Number is %i”,number);

[zms SetNumber:555 setTime:555.55];

NSLog(@“Number is %i and time is %f”,[zms number],[zms time]);

// 释放对象

[zms release];

}

return 0;

}

import导入*.h,系统的

<>

,自写的用

“”

  • OC中get方法建议和成员变量名一样

2015-04-20


  • 属性就是让类外可以访问成员变量

  • 类内使用成员变量,类外使用属性

// People.h

#import <Foundation/Foundation.h>

@interface People : NSObject

{

// 推荐成员变量加_,Xcode新版本不需要再在.h文件中写成员变量

NSString * _peopleName;

int _peopleAge;

int _peopleSex;

}

@property(nonatomic,strong)NSString *peopleName;

@end

  • 属性的使用:

// main.m

People *people = [[People alloc]init];

perople.peopleName = @“周木水”;

NSLog(@“peopleName - %@”, people.peopleName);

2015-06-22


  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:23:13  更:2021-12-06 15:23:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:31:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码