iOS 开发基础,HR的话扎心了

iOS 开发基础,HR的话扎心了,第1张

在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

@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

#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

@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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存