2024年Android最新iOS 开发基础(1),一线互联网公司面经总结

总结

算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。

这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。

部分资料展示:




有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

/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(@“调用了number的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,系统的

<>

自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[zms SetNumber:555 setTime:555.55];

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

// 释放对象

[zms release];

}

return 0;

}

import导入*.h,系统的

<>

自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

[外链图片转存中…(img-w3BDRF21-1715667183336)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值