ps照片处理器怎么打文字_什么是文字处理器?

ps照片处理器怎么打文字

ps照片处理器怎么打文字

Word Processor is a term used to describe a hardware or software which is used for input, edit, format, output, convert some text. Even first-word processors are hardware-based or provide very basic features for word processing. Modern word processors like MS Word, Libre Office, OpenOffice, etc. provide advanced features.

Word Processor是一个术语,用于描述用于输入,编辑,格式化,输出,转换某些文本的硬件或软件。 甚至*字处理器也是基于硬件的,或者提供用于字处理的非常基本的功能。 诸如MS Word,Libre Office,OpenOffice等的现代文字处理器提供了高级功能。

文字处理器历史 (Word Processor History)

Word processor history goes back to the 1970s. Even hardware-based word processor roots go older than that we will look at the history of the software-based word processor.

文字处理器的历史可以追溯到1970年代。 甚至基于硬件的文字处理器的根源远比我们看到的基于软件的文字处理器的历史悠久。

  • The first-word processor software or application is created in 1976 with the name of “Electric Pencil”.

    *个字处理软件或应用程序创建于1976年,名称为“ Electric Pencil”。

  • In 1978 another word processor named WordStar boomed the word processor market and became very popular. WordStar was created for the CP/M operating system. But later with the popularity of MS-DOS the WordStar is rewritten for MS-DOS.

    1978年,另一个名为WordStar的文字处理机蓬勃发展了文字处理机市场,并大受欢迎。 WordStar是为CP / M操作系统创建的。 但是后来随着MS-DOS的流行,WordStar被改写为MS-DOS。

  • In the MS-DOS era word processors, WordPerfect and Microsoft became very popular even there are some less popular word processors like XyWrite.

    在MS-DOS时代,即使有些不受欢迎的文字处理器(例如XyWrite),WordPerfect和Microsoft也变得非常流行。

  • The late 1980s with the innovation of laser printers typography became important with different fonts.

    1980年代后期,随着激光打印机字体的创新,使用不同的字体变得非常重要。

  • Apple Macintosh computers provided the MacWrite word processor alternative from the year 1983.

    从1983年开始,Apple Macintosh计算机提供了MacWrite文字处理器替代产品。

  • In the IBM PC era, Microsoft Word became very popular which started in 1984.

    在IBM PC时代,Microsoft Word从1984年开始非常流行。

  • With the popularity of the Windows operating system, Microsoft Word became a defacto word processor.

    随着Windows操作系统的普及,Microsoft Word成为事实上的文字处理器。

文字处理器功能和操作 (Word Processor Features and Operations)

Word Processors provide different features in order to create documents. Not all of them provide advanced features but different processors provide a different level of features.

文字处理器提供了不同的功能来创建文档。 并非所有人都提供高级功能,但不同的处理器提供不同级别的功能。

Insert text is the most basic and popular feature where text, words, and characters are typed into the document which is provided by the word processor.

Insert text是*基本和*流行的功能,在其中文字,单词和字符被键入到文字处理器提供的文档中。

LEARN MORE  What Is DOCX File and How To Open, Edit and Convert DOCX?
了解更多什么是DOCX文件以及如何打开,编辑和转换DOCX?

Delete text is another popular operation where miss-typed or unwanted text and characters are deleted.

Delete text是另一种流行的操作,其中会删除错误键入或不需要的文本和字符。

Copy is another popular operation where some text is copied from the given document.

Copy是另一种流行的操作,其中从给定文档中复制一些文本。

Paste is similar operation to “insert text” but the text is copied from different documents, browsers, etc. into the current document.

Paste与“插入文本”类似,但是文本是从其他文档,浏览器等复制到当前文档中的。

Page size and properties can be configured accordingly for better and specific view and page type.

可以相应地配置Page size and properties ,以获得更好的特定视图和页面类型。

Search operation will search and find a given word or characters in the current word processor document.

Search操作将在当前文字处理器文档中搜索并找到给定的单词或字符。

Replace is related to the “search” operation where matched search can be changed or replaced with the given word or characters.

Replace与“搜索”操作有关,在该操作中,匹配的搜索可以更改或替换为给定的单词或字符。

Print is used to print the given document into a different format like PDF or sent to into printer to get a hard copy.

Print用于将给定文档打印为PDF等其他格式,或发送到打印机以获取纸质副本。

File management is used to create, delete, move, rename word processor documents.

File management用于创建,删除,移动,重命名文字处理器文档。

Font management is used to set and change font type which is related to the character representations.

Font management用于设置和更改与字符表示形式有关的字体类型。

Spell checking is another popular feature where the text content is checked again spelling or grammatical errors.

Spell checking是另一个流行的功能,其中再次检查文本内容的拼写或语法错误。

Footnotes are used to put some information about specific text or paragraph.

Footnotes用于放置有关特定文本或段落的一些信息。

References is used for academic purposes.

References用于学术目的。

Headers and footers are used to show some generic information like document name, page number,

Headers and footers用于显示一些常规信息,例如文档名称,页码,

Macro is used to run simple scripts to generate, calculate some data, or create actions according to the keystrokes and automatically run some functions.

Macro用于运行简单的脚本,以根据击键生成,计算一些数据或创建操作,并自动运行某些功能。

Index Table is used to show list of headers and document parts with page information.

Index Table用于显示带有页面信息的标题和文档部分的列表。

Graphics are used to show some data or information in a graphical way. The graphic can be a bar, pie, line type.

Graphics用于以图形方式显示一些数据或信息。 图形可以是条形,饼形,线型。

Table is used to show tabular data in a structured way which is easy to read and look.

Table用于以易于阅读和查看的结构化方式显示表格数据。

LEARN MORE  Windows Dir Command Tutorial With Examples To List Files and File Information
了解更多Windows Dir命令教程,其中包含列出文件和文件信息的示例

文字处理器GUI(Word Processor GUI)

Even a word processor provides a lot of features it provides very basic GUI in order to make the user experience easier for most of the people from different knowledge level.

甚至文字处理器也提供了很多功能,它提供了非常基本的GUI,以便使来自不同知识水平的大多数人都可以更轻松地获得用户体验。

%title插图%num
Word Processor GUI
文字处理器GUI

文字处理器用例 (Word Processor Use Cases)

Even word processor is a very similar text editor it provides a lot more features and detailed configurations. Below we will list some use cases for the word processor.

甚至文字处理器也是一个非常相似的文本编辑器,它提供了更多的功能和详细的配置。 下面我们将列出文字处理器的一些用例。

  • Creating reports for different businesses

    为不同业务创建报告

  • Creating homework for school and university

    为学校和大学创建作业

  • Creating documentation about a product, feature or service

    创建有关产品,功能或服务的文档

  • Creating presentations with a lot of text, table, and graphics.

    创建带有大量文本,表格和图形的演示文稿。

流行的文字处理器软件 (Popular Word Processor Software)

Even Microsoft Word is the most popular and defacto word processor there are a lot of proprietaries and free/opensource word processors. Below we will list some of them.

即使Microsoft Word是*流行和事实上的文字处理程序,也有许多专有和免费/开源的文字处理程序。 下面我们将列出其中一些。

免费和开源文字处理器 (Free and Open-Source Word Processors)

  • AbiWord

    阿比字

  • Apache OpenOffice Writer

    Apache OpenOffice作家

  • Calligra Words

    卡里格拉词

  • EtherPad – real-time word processor

    EtherPad –实时文字处理器

  • GNU TeXmacs

    GNU TeXmacs

  • Groff

    格罗夫

  • JWPce – Japanese word processor, designed primarily for the English speaker who is reading or writing in Japanese

    JWPce –日语文字处理器,主要为英语读写日语的人设计

  • KWord

    知识词

  • LibreOffice Writer

    LibreOffice作家

  • LyX – TeX document processor

    LyX – TeX文档处理器

  • OnlyOffice Desktop Editors

    OnlyOffice桌面编辑器

  • Ted

    特德

  • Trelby – screenplay word processor

    Trelby –剧本文字处理器

专有文字处理器(Proprietary Word Processor)

  • Apple Pages, part of its iWork suite – Mac, iOS

    Apple Pages,属于iWork套件的一部分– Mac,iOS

  • Applix Word – Linux

    Applix Word – Linux

  • Atlantis Word Processor – Windows

    亚特兰蒂斯文字处理器– Windows

  • Documents To Go – Android, iOS, Windows Mobile, Symbian

    待处理文档– Android,iOS,Windows Mobile,Symbian

  • Final Draft – screenplay/teleplay word processor

    *终草案–剧本/电视剧文字处理器

  • FrameMaker

    制框机

  • Gobe Productive Word Processor

    Gobe高效文字处理器

  • Hangul (also known as HWP)

    朝鲜文(又称HWP)

  • IA Writer – Mac, iOS

    IA作家– Mac,iOS

  • IBM SCRIPT – IBM VM/370

    IBM SCRIPT – IBM VM / 370

  • IBM SCRIPT/VS – IBM z/VM or z/OS systems

    IBM SCRIPT / VS – IBM z / VM或z / OS系统

  • Ichitaro – Japanese word processor produced by JustSystems

    Ichitaro – JustSystems生产的日语文字处理器

  • InCopy

    InCopy

  • IntelliTalk

    智能对话

  • iStudio Publisher – Mac

    iStudio Publisher – Mac

  • Kingsoft Writer – Windows and Linux

    金山作家– Windows和Linux

  • Mariner Write – Mac

    水手写– Mac

  • Mathematica – technical and scientific word processing

    Mathematica –技术和科学文字处理

  • Mellel – Mac

    Mellel – Mac

  • Microsoft Word – Windows and Mac

    Microsoft Word – Windows和Mac

  • Microsoft Works Word Processor

    Microsoft Works文字处理器

  • Microsoft Write – Windows and Mac (a stripped-down version of Word)

    Microsoft Write – Windows和Mac(Word的精简版)

  • Nisus Writer – Mac

    Nisus作家– Mac

  • Nota Bene – Windows

    Nota Bene – Windows

  • Polaris Office – Android and Windows Mobile

    北*星办公室– Android和Windows Mobile

  • PolyEdit

    PolyEdit

  • QuickOffice – Android, iOS, Symbian

    QuickOffice – Android,iOS,Symbian

  • Scrivener

    助剂

  • TechWriter – RISC OS

    TechWriter – RISC操作系统

  • TextMaker

    文字制作工具

  • ThinkFree Office Write

    ThinkFree Office写

  • Ulysses – Mac, iPadOS, iOS

    尤利西斯– Mac,iPadOS,iOS

  • WordPad – previously known as “Write” in older versions than Windows 95; has been included in all versions of Windows since Windows 1.01.

    写字板–在Windows 95之前的版本中以前称为“写入”; 从Windows 1.01开始,所有版本的Windows中都包含该组件。

  • WordPerfect

    完美的Word

ubuntu 删除路由_如何在Ubuntu Linux中删除路由?

ubuntu 删除路由

I have some route in my routing table. But I want to delete one route from routing table. How can accomplish this?

我的路由表中有一些路由。 但是我想从路由表中删除一条路由。 如何做到这一点?

列出现有路线 (List Existing Routes)

To get detailed information about route that will be removed we list the existing routes in our system.

为了获得有关将被删除的路由的详细信息,我们在系统中列出了现有的路由。

  1. $ sudo ip route show
  2. default via 192.168.122.1 dev ens3
  3. 10.0.3.0/24 dev lxcbr0  proto kernel  scope link  src 10.0.3.1
  4. 172.16.0.0/24 via 192.168.122.1 dev ens3
  5. 192.168.122.0/24 dev ens3  proto kernel  scope link  src 192.168.122.211

删除特定路线 (Remove Specific Route)

This command can be run all modern Linux distributions like Kali, Debian, Ubuntu, Fedora, CentOS. We remove the route by giving specific details about route like below. We will use ip route del command and provide related parameters.

该命令可以运行所有现代Linux发行版,例如Kali,Debian,Ubuntu,Fedora,CentOS。 我们通过提供有关路线的具体细节(如下所示)来删除路线。 我们将使用ip route del命令并提供相关参数。

$ sudo ip route del 172.16.0.0/24 via 192.168.122.1 dev ens3
  • ip route del is the command issues for removal

    ip route del是要删除的命令问题

  • 172.16.0.0/24 via 192.168.122.1 dev ens3  is our route to be removed. We give the full detail route so there will no space for error.

    通过192.168.122.1 dev ens3 172.16.0.0/24是我们要删除的路由。 我们提供了详细的路线,因此不会有错误的空间。

检查一下 (Check)

We want to check the last status of our routing table. We issue the same command we issued when starting.

我们要检查路由表的*后状态。 我们发出与启动时相同的命令。

  1. $ sudo ip route show
  2. default via 192.168.122.1 dev ens3
  3. 10.0.3.0/24 dev lxcbr0  proto kernel  scope link  src 10.0.3.1
  4. 192.168.122.0/24 dev ens3  proto kernel  scope link  src 192.168.122.211

As we can see from the output the route to the 172.16.0.0/24 is deleted from routing table.

从输出中可以看到,从路由表中删除了到172.16.0.0/24路由。

如何在Ubuntu Linux中删除路由? 信息移植 (How To Delete Route In Ubuntu Linux? Infografic)

   How To Delete Route In Ubuntu Linux? Infografic
How To Delete Route In Ubuntu Linux? Infografic

iOS 开发技术栈与进阶

*近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道。”的时期,这里尝试列一下 iOS 开发的相关技术,再说说在学习进阶上我的一些想法。

iOS 技术栈
这里按我的理解给 iOS 相关技术分个类,以工程实现的角度,分成了基础、需求、效率、质量四个类别。基础指程序开发和 iOS 开发的基础知识和技能,需求就是产品的需求,有了基础技能,实现了产品需求后,剩下的事情就都是为了提高项目质量和提升开发效率。

大致的思维导图(高清点这里):

%title插图%num

基础
基础包括语言、框架、内存、网络、存储、渲染、线程。

语言目前 iOS 开发就是 OC 和 Swift,国内仍以 OC 为主,对于 OC 除了语法外,*好了解它的对象模型,动态机制等特性。Swift 方面若要在团队里使用,目前还是风险大收益小的,但个人*好保持对它的关注。

框架就是 Foundation / UIKit 以及苹果系统封装好的各种框架,Foundation 和 UIKit 每个做 iOS 开发的人都熟知这套,iOS 功能越来越多,苹果提供的框架也越来越多,像 StoreKit / MessageUI / AVFoundation 等可以在使用到再去了解。

接着是客户端里*常见流程里的四个关键部分:从网络拉取数据,存储到本地文件系统,再从本地取出来放进内存,*后渲染出来。而这里所有的处理都在操作系统的进程和线程中执行。

网络方面若要深入的话内容很多,客户端一般只需要关心 http / https / dns 这几个协议,了解 https 的原理,处理运营商劫持 dns 劫持等情况,另外需要处理好各种异常情况做好重试机制,iOS 作为移动端网络不稳定,要看情况优化弱网络下的连接,做好离线机制,以及注意避免耗费太多流量。还有客户端跟后台的通信协议,数据结构一般用 json 或 protobuf,由于客户端本地会保存一部分内容,很多 APP 都会需要做数据的增量更新。

存储方面主要是 sqlite,sqlite 作为存储引擎是大多数 APP 的核心,也是性能优化的关键点,*基本的需要知道主键索引事务等数据库基本概念,再深入需要了解具体的存储机制/索引的实现/sqlite的七层结构等,才能在遇到问题时找到*佳的解决方案。客户端上 nosql 用得较少,除了 sqlite 一般就剩单文件存储,XML存文件或对象序列化成二进制存储,也是常用的存储方式,近期有 realm 这种新型数据库,也值得了解一下。

内存方面,需要了解 OC 的引用计数、 ARC 机制、自动释放池等相关点,*好其他语言的垃圾回收机制也有所了解,另外需要注意避免内存泄露,管理好客户端的缓存,避免缓存太多导致OOM,或缓存命中率太低性能低下。

渲染方面主要是文字和图像,基础上文字方面 UIKit 已封装得很好,CoreText也提供了更自由的排版渲染方式,图像渲染只需要注意解压时机,再深入需要了解 iOS 具体的渲染机制,像图层混合,渲染时机,离屏渲染等,才好做更多的优化。

线程和进程方面,iOS 开发只在做 Extension 时才需要考虑到进程,一般只需处理好线程,需要了解主线程子线程,多线程并发锁竞争,死锁,GCD,Runloop 等知识点。

需求
需求方面姑且概括为普通需求、特殊需求和运营需求。

普通需求就是上面提到的网络拉数据->存储->读取->展示,大多数 APP 主要都是在实现这类需求,熟悉上述的基础知识后就能轻易实现。

特殊需求是指一些特定 APP 的需求,像浏览器内核,文字排版引擎,音视频和图像处理引擎,图标绘制引擎等,要求较高,都需要在相关领域里较深入的钻研才能做好。

运营需求是 APP 上线后持续运营过程中的需求,包括功能动态化,可以随时增删改线上的功能,一般这块由内嵌 web 承担。配置系统也算动态化的一种,可以通过各种开关控制展现的功能。统计系统记录 APP 各项运营数据,包括用户增长情况,留存率,功能使用情况等。事件流可以清楚看到用户在 APP 里的使用流程。有些 APP 还会开发推荐系统,根据收集来的数据给不同用户推送不同内容,提高用户转化率等。

质量
越大的 APP 会花越多的精力在保证和提高 APP 质量上,包括性能优化,搭建监控体系,提升代码质量,保证安全,以及通过测试保证质量。

性能优化范围很大,在网络/存储/内存/渲染/算法各方面都有优化的可能,一般性能上的优化可以分成三步走,一是检测各方面的数据,量化运行性能,二是从中找到性能瓶颈,三是找办法优化,用*步的数据验证优化效果。

监控体系在面向大众用户的产品里无论是前端后端一直都是非常重要的,你需要时刻知道用户在使用你的产品过程中有没有发生什么问题,让你的 APP 处于可知可控状态,客户端*常见的监控点是 crash,这个无需多说,另外一般对于 APP 里的错误码,包括本地错误、网络错误等都需要监控起来,这样在出现异常时才能即时得知进行处理。其他通用的监控包括卡顿监控、数据库监控、流量消耗监控、内存消耗监控、各种耗时监控等等,还有各类业务相关的监控,越大的 APP 监控的项目就越多越细致,目的都是及时发现问题,以及衡量 APP 的质量。除了监控问题外,这里还需要做好出错时的补救措施,可以通过预埋功能开关配置或接入热修复的库去做。

安全方面,客户端上安全的分量相对于服务端是少很多,尤其是在 iOS 系统沙盒机制的保护下,本身已经比较安全,*需要注意的是网络传输的安全,避免网络传输内容被篡改,或泄露了用户名密码等敏感信息。对于代码里有机密信息的可以考虑混淆代码对 APP 进行加固,减少被破解的概率。

代码质量主要存在于团队协作上,一般团队都会定义代码规范,让大家的代码风格趋于一致,有些会开发代码规范检测工具,确保提交的代码遵循代码规范。另外很多团队都会实行 code review 机制,互相查看代码,减少脏乱差代码出现的概率,具体 review 机制各有不同。

测试是一个专业,国内终端产品因为迭代快,常见的是黑盒测试,虽然不能保证无问题,但成本低效率高,部分稳定的核心功能会做单元测试,也有一些团队所有业务功能都做自动化测试的。

效率
客户端的架构可以说都是为了提高开发协作效率,因为功能可以用很多种方法实现,可以不需要什么架构,无论是大型还是小型 APP 都可以按一套来实现,只不过差的架构在中大型 APP 上代码会很混乱,导致在开发/协作/debug上效率会越来越低,好的架构则会提升这里的效率。大多数架构都是分层抽象和解耦,把功能独立的组件抽离出来,业务模块化,分层职责清晰,互相不耦合。只要分层抽象和解耦做得足够好,无论多大的 APP 都是很多小模块的拼接,就可以降低复杂度,提高开发效率。但有时解耦会带来通信的麻烦,抽象也有粒度大小的问题,这些都需要根据具体情况权衡。业界有各种各样的架构模式可供参考,像 MVC / MVVM / MVP / VIPER 等。除了解耦和抽象,还有一些改变编方式的架构,像响应式编程,单向数据流等。

持续集成的意思是不断把每个人做的东西(代码/资源等)集成到一起输出成品,进行自动化构建,其中涉及代码管理(git / svn),编译流程,证书和签名机制,自动化测试,打包发布等。其中还会有一些自定义的自动化流程,例如自动生成代码,根据 debug / release 包类型自动更改配置等,重复做的事都应该自动化,以提高开发效率。

业界为了提升开发效率,跨平台开发一直是大家孜孜不倦追求的目标。终端上跨平台愿望是只开发一次,就能完美运行在 Android 和 iOS 上,业界有很多尝试,这篇文章总结得比较全,总的来说目前*好的跨平台方案就是 web (H5),代价是性能略低。

进阶
列完 iOS 开发的相关知识点,接下来说说怎样学习提高。

如果自学能力强的话,不需要多说,上述每个点网上都有大量资料,像内存网络存储这些计算机基础知识也有经典的书籍,一个个啃下去就行了,只要理解得足够深入,就已经可以成为领域里的专家,并很容易触类旁通。

但这种学习方法会比较枯燥,也难以实践,个人还是比较推荐在实践中学习,具体来说就是在平时开发过程中不断地发现问题 -> 解决问题。

发现问题
首先你*好处在一个有很多工程上的问题急需解决的环境里,这样发现问题就很容易,*好的是处于这几类项目里:

处于高速发展期的项目。增长会带来很多问题,一切又未成熟,解决这些问题是非常自然又有价值的。
庞大的项目,超级APP会带来很多中小型APP没有遇到过的问题,又因为体量大,就算只有千分之一的人遇到也会影响几十万人,很有解决的价值,会有很多细致的问题。
像上面提到的有“特殊需求”一类的项目,需要在一个领域里深入研究,也会自然碰到很多问题。
如果恰巧没有在这三种类型的项目里,也没关系,只要是健康发展的项目,总会存在问题和优化空间,只是要培养发现问题的意识,很多时候问题就在那里,但没人发现它,没人觉得它可以/应该解决。可以按上述列的点,在相关点上多问自己能不能提高效率和质量,例如能不能提高前后台联调效率,重复写的代码能不能自动生成,启动耗时能不能短一点,线上问题发现和排查的效率能不能提高等等。各种问题会涵盖上述提到的所有知识点。

如果不幸你的项目没有健康发展,实在没碰到什么问题或者问题不值得解决,或者你还没毕业,那这里还有一个万能问题可供参考:那些知名的开源项目具体是怎样实现的?剖析开源项目源码可以学到很多东西,各种各样的开源项目也覆盖了很多知识面,只要深入去研究它们,学习它的架构和编码,不懂的地方再去补齐知识,也是个很好的学习方式,如果学习后能输出文章效果会更好,相当于动手实践了。

解决问题
不同的解决问题的方式差别很大,有一些常见的套路可供参考:

业界是怎样解决这个问题的?他们的方案有什么不足?我怎样可以做得更好?

业界有各种各样的开源库和技术分享,只要问题不是太偏门,大多会有人已经提出解决方案,多对比和研究这些已有的方案,看它们是否能满足需求,找出它们的优点和不足,看看能不能做得比它们更好或更适合解决碰到的问题。

解决方案能否通用化,封装成开源库供其他项目使用?

开源项目都是这样来的,如果遇到一个别人没解决好的问题,别错过封装成开源库造福社会。

有没有办法防止以后出现类似的问题?

有些问题可能会反复出现,能不能防止,或者能不能在出现问题的时候能及时发现和修复,这可能涉及到开发流程、自动化和监控体系等方面的完善。

总结沉淀

能不能总结出解决这类问题的方法论(套路)?*好能输出文章或分享,写的过程是很好的学习过程,因为要把原本模糊的想法都清晰地表达出来,迫使自己去整理思路。

总结
这里按我的理解列了 iOS 相关技术点,以及在实践中提升能力的一点小建议,可能无法各方面都覆盖到,只是作为一个参考。另外这里只局限在 iOS 开发上,实际上作为程序员不应该限制自己学习的范围,有时间多去了解后端/前端/运维也会很有利于自身开发能力的提高。

 

*新《iOS技术中高级篇项目实战》

课程目录:

CoreData数据库框架
JSON数据解析
SQLite关系数据库
Swift技术开发(Swift的基本语法及闭包的功能)
XML数据解析
XMPP即时通讯(openfire服务器搭建、客户端注册用户、客户端登陆用户)
XMPP即时通讯(客户端与客户端的通讯实现、实现微信聊天界面效果)
XMPP即时通讯(客户端添加好友、获取好友列表、获取用户信息、修改个人用户信息)
字符串常用的实现过程(MD5,Base64,HAS)
录音、录视频功能的实现过程(创建工程,Demo演示,Demo实现过程)
文件上传的实现过程(MultipartFormData格式的数据上传)
断点续传的实现过程(断点续传的原理,实现过程)
百度地图的使用方法
自动布局框架Masonry的使用用法(创建工程,Demo演示,Demo实现过程)

*新iOS开发底层重点,iOS技术点+面试题整理!

以下是小编收集总结的iOS技术点+面试题分类;看看你都会了吗?

重点总结-四大分类:

iOS底层原理
性能优化以及架构
多线程、网络
数据结构算法
iOS底层原理(必问):iOS开发必备能力,也是大厂面试快速筛选人才方式之一。

对象底层原理
指针与内存的一些相关面试
Weak 弱引用
Block 的原理
AutoreleasePool 原理
Runloop 的原理
Runtime相关、消息转发原理…
组件化
常问例题:

1. 什么情况使用weak关键字,相比assign有什么不同?
2. 深拷贝与浅拷贝
3. 简要说一下@autoreleasePool的数据结构?
4. autoreleasePool 在何时被释放?
5. 说一下iOS内存分区情况
6. 如何解决循环引用?
7. Runloop 和线程的关系?
8. isa指针的理解,对象的isa指针指向哪里?
9. Runtime 如何实现 weak 属性?
10. load和initialize的区别
11. ……

性能优化以及架构能力:目前大厂对于这一块,非常重视;

①性能优化方面:tableView的优化 -> 界面卡顿原理 -> app 性能分析 -> 项目优化

②架构方面:设计模式、解耦手段、组件化…

常问例题:

1. 造成tableView卡顿的原因有哪些?
2. 如何提升 tableview 的流畅度?
3. APP启动时间应从哪些方面优化?
4. 如何降低APP包的大小?
5. 日常如何检查内存泄露?
6. iOS有哪些常见的设计模式?
7. 单例会有什么弊端?
8. MVC、MVP、MVVM模式
9. 编程中的六大设计原则?
10. ……

 

多线程、网络能力:iOS中高级开发,都应该了解,并且熟悉的知识点;

多线程的原理
线程池
GCD
锁相关原理
网络设计
网络框架的理解
开发过程中一些需求结合多线程或者网络设计!
常问例题:

1. 进程与线程?
2. 什么是多线程?
3. 多线程的优点和缺点?
4. 多线程的 并行 和 并发 有什么区别?
5. 多线程中的死锁?
6. GCD执行原理?
7. 网络的七层协议?
8. Http 和 Https 的区别?Https为什么更加安全?
9. 解释一下 三次握手 和 四次挥手?
10. Cookie和Session
11. ……

数据结构算法能力占比比较大:通常一般大公司都会有一些笔试:虽然不在核心岗位对于数据结构算法要求不是非常严格,但是也会有一些常规的数据结构和算法的题

排序
数据结构设计
复杂度讨论
一些脑筋急转弯的算法题

常问例题:

1. 链表和数组的区别是什么?插入和查询的时间复杂度分别是多少?
2. 哈希表是如何实现的?如何解决地址冲突?
3. 排序题:冒泡排序,选择排序,插入排序,快速排序(二路,三路)能写出哪些?
4. 链表题:如何检测链表中是否有环?如何删除链表中等于某个值的所有节点?
5. 数组题:如何在有序数组中找出和等于给定值的两个元素?如何合并两个有序的数组之后保持有序?
6. 二叉树题:如何反转二叉树?如何验证两个二叉树是完全相等的?
7. 数据结构的存储一般常用的有几种?各有什么特点?
8. ……

iOS开发去面试BAT,这些iOS面试题必须得会

前言
*近把各个大厂的 iOS面试题整理了, 题目大部分是网上收录的, 方便自己巩固复习, 也分享给大家; 希望对大家有所帮助!

此次iOS面试题 ,底部会提供一份答案
题集大全
1: 谈谈你对KVC的理解

2: iOS项目中引用多个第三方库引发冲突的解决方法

3: GCD实现多读单写

4: 讲一下atomic的实现机制;为什么不能保证*对的线程安全?

5: Autoreleasepool所使用的数据结构是什么?

6: AutoreleasePoolPage结构体了解么?

7: iOS中内省的几个方法?

8: class方法和objc_getClass方法有什么区别?

9: 分类和扩展有什么区别?可以分别用来做什么?

10: 分类有哪些局限性?分类的结构体里面有哪些成员?

11: 能不能简述一下Dealloc的实现机制

12: HTTPS和HTTP的区别

13: TCP为什么要三次握手,四次挥手?

14: 对称加密和非对称加密的区别?分别有哪些算法的实现?

15: HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?

16: 如何用Charles抓HTTPS的包?其中原理和流程是什么?

17: 什么是中间人攻击?如何避免?

18: 了解编译的过程么?分为哪几个步骤?

19: 静态链接了解么?静态库和动态库的区别?

20: App网络层有哪些优化策略?

21: 排序题︰冒泡排序,选择排序,插入排序,快速排序(二路,三路)能写出那些?

22: iOS开发中的加密方式

23: App安全,数字签名,App签名,重签名

24: OC数据类型

25: property和属性修饰符

26: 成员变量ivar和属性property的区别,以及不同关键字的作用

27: 类簇的优缺点

28: 谈谈设计模式

29: 谈谈架构设计

30: ReactiveCocoa的使用及优缺点

31: 类的继承,类能否多继承,协议能不能做继承?

32: 分类(category)和类扩展(extension)的区别

33: 如何实现week

34: 字典注意事项:setvalue和setobject的区别

35: 多线程和锁

36: WebSocket与TCP Socket的区别

37: 事件传递和响应机制

2020,300道高级iOS开发面试题(*新整理)

一:知名大厂iOS开发面试题篇
1、腾讯—*新iOS面试题总结
2、百度—*新iOS面试题总结
3、头条—*新iOS面试题总结
4、阿里—*新iOS面试题总结
5、美团—*新iOS面试题总结
6、某大厂—*新iOS面试题总结
7、抖音–*新iOS面试题总结
8、拼多多–*新iOS面试题总结
9、快手–*新iOS面试题总结
10、虎牙–*新iOS面试题总结
11、iOS面试–*新快手iOS面试题
12、iOS面试–字节跳动*新iOS开发面试题
13、(*新)iOS高级面试,各大厂以及小公司的面试题!
14、知名互联网公司iOS面试题
15、2020年,大厂常问iOS面试题汇总!
16、2020,iOS面试辅助之iOS面试题集

二:大厂iOS面试题+答案篇
1、阿里、字节iOS面试题之Runtime相关问题1(附答案)
2、阿里、字节iOS面试题之Runtime相关问题2(附答案)
3、阿里、字节iOS面试题之Runtime相关问题3(附答案)
4、*新iOS面试题之iOS通知机制全面解析
5、*新iOS面试题之NSNotification
6、*新iOS面试题之Runloop&KVO
7、*新iOS面试题之Block
8、*新iOS面试题之视图&图形
9、2020年,精选大厂的iOS面试题总结(一)
10、2020年,精选大厂的iOS面试题总结(二)
11、大厂常问iOS面试题–性能优化篇
12、大厂常问iOS面试题–多线程篇
13、大厂常问iOS面试题–Runtime篇
14、大厂常问iOS面试题–Runloop篇
15、大厂常问iOS面试题–组件化篇
16、大厂常问iOS面试题–内存管理篇
17、大厂常问iOS面试小集

三:精选iOS面试题+答案篇
1、NSOperation 与 GCD 的主要区别?
2、反射是什么?可以举出几个应用场景么?
3、App启动过慢,你可能想到的因素有哪些?
4、介绍下App启动的完成过程?
5、SDWebImage实现原理是什么? 它是如何解决tableView的复用时出现图片错乱问题的呢?
6、如何优化 App 的启动耗时?
7、你会如何存储用户的一些敏感信息,如登录的token
8、SDWebImage原理
9、iOS 开发中常见的内存问题有哪些?
10、聊一聊iOS 中的离屏渲染?
11、三次握手与四次挥手
12、你一般是如何优化你的APP的?
13、AFNetworking 底层原理分析
14、分析下SDWebImage
15、dSYM你是如何分析的
16、如何优化 App 的的包大小?
17、一个int变量被__block修饰与否的区别?
18、MVVM和MVC的区别
19、讲一下MVC和MVVM,MVP?
20、什么是离屏渲染?什么情况下会触发?该如何应对?
21、通知,代理,KVO的区别,以及通知的多线程问题
22、网络七层协议
23、怎么防止反编译?

如何在树莓派上搭建私人webproxy?

在公司只能用公司提供的proxy上网,但是由于设置了黑名单,很多网站上不去
想再家里架设一台webproxy,中转上网
求解决方案,如果能跑在树莓派上就更好了!
好像有一些开源的webproxy项目,但由于之前也没接触过类似的,求推荐
第 1 条附言 · 2013-07-27 15:59:07 +08:00
现在组网是 [公司PC] —— [公司代理] —— [外网] 。由于公司代理存在黑名单,所以我想把组网变成这样 [公司PC] —— [公司代理] —— [私人webproxy] —— [外网]
webproxy 树莓 上网15 条回复 • 1970-01-01 08:00:00 +08:00
Showfom 1
Showfom 2013-07-27 01:35:45 +08:00
* 不行么?
shenyuanv 2
shenyuanv 2013-07-27 09:09:01 +08:00
@Showfom 如果要连上外部网络,就必须使用统一提供的proxy,而不能自己在代理设置中配置外网IP作为代理,这样的话是链接不到外网的。所以只能用webproxy了
fangpeishi 3
fangpeishi 2013-07-27 10:48:18 +08:00
Privoxy试一试

不使用网络上那些免费的webproxy是考虑到安全性?
fangpeishi 4
fangpeishi 2013-07-27 10:54:39 +08:00
看错了,这个
PHPproxy
https://bitbucket.org/arkadi/phpproxy
shenyuanv 5
shenyuanv 2013-07-27 11:18:49 +08:00
@fangpeishi 一是考虑到安全性,二是*大多数免费的webproxy也在黑名单里
felix021 6
felix021 2013-07-27 13:09:13 +08:00
@shenyuanv 我的mk802放在家里就是开放ssh访问,通过socks5代理上网就好了。在公司看视频基本上都是这么搞的当然,用shadowsocks可能更好一点。至于代理设置的问题,自己写个简单的pac就行了。我们公司就是提供一个pac脚本,我自己改了,不过有的时候会失效。
shenyuanv 7
shenyuanv 2013-07-27 15:59:19 +08:00
@felix021 自己能设置PAC的原因是能够一部分连接外网吧,但现在组网是 [公司PC] —— [公司代理] —— [外网] 。由于公司代理存在黑名单,所以我想把组网变成这样 [公司PC] —— [公司代理] —— [私人webproxy] —— [外网]
felix021 8
felix021 2013-07-29 09:11:27 +08:00
@shenyuanv 不是的,自己设置pac的原因是可以根据不同的访问请求走不通的路线。你可以用tunnelier,通过公司代理连接到ssh然后在本地开socks5 proxy,这样本地就相当于有两个外网通道了。
yyai3 9
yyai3 2013-07-29 09:17:43 +08:00
公司内部仅仅开放了http代理,8080端口。之前家里有台Windows的机器,通过TeamView的*模式+CCProxy的代理,可以实现。在树莓派上,我暂时还在尝试,可以参考HttpTunnel+Linux下的代理服务~~
yyai3 10
yyai3 2013-07-29 09:19:14 +08:00
补充一下,TeamView可以不需要公网IP,HttpTunnel貌似要通过动态域名等方式来解决IP问题~
snnn 11
snnn 2013-08-12 12:11:27 +08:00
贵司能打开https的网站吗? 如果能,就是开放了connect,于是就无敌了,借此可以传输任何流。
shenyuanv 12
shenyuanv 2013-08-12 13:58:25 +08:00 ❤️ 1
@snnn https的证书貌似是被替换过的,每次上https都有警告证书不对
aru 13
aru 2013-08-12 14:19:28 +08:00
@shenyuanv 既然https证书都会被替换,有如下选择给你:
1. 不要上白名单以外的网站
2. 辞职,换个可以自由上网的工作
3. 自己买个3G 路由器在公司使用,别用公司的网络
yyai3 14
yyai3 2013-08-12 14:29:58 +08:00
@snnn 一直没搞明白http代理中的connect,能上https表示就开放了http connect么?
yyai3 15
yyai3 2013-08-12 14:36:52 +08:00
貌似访问https://v2ex.com 和https://www.google.com 方法也都是get 有什么办法测试Connect么?
@snnn
@shenyuanv

域名已备案,求推荐下实惠些速度快的国内主机

速度稳定性为先,价格贵点也可以。

6 条回复    1970-01-01 08:00:00 +08:00

aveline
    1

aveline   2013-08-18 07:47:42 +08:00

望天… 換接入商是還要重新備案的

推薦 美圖雲 阿里雲 青雲 …

moname
    2

moname   2013-08-18 09:18:29 +08:00   ❤️ 1

主机的话,你可以试试 东陆互联 ,这家服务器托管在景安BGP机房,南北速度快,有备案就可用。并且面板是cpanel的,使用很方便,价格也不贵。
maoyipeng
    3

maoyipeng   2013-08-18 09:38:53 +08:00 via Android

阿里的不错,新增接入也简单
xing393939
    4

xing393939   2013-08-18 11:25:42 +08:00

选了中电云集的。。。
kwx
    5

kwx   2013-08-23 23:31:41 +08:00

阿里云。
8QE
    6

8QE   2013-10-27 18:06:32 +08:00

阿里云不错。

服务器被入侵了。怎么办?

自己的服务器总是CPU使用率暴涨,然后流量一下增加很多。

应该是被入侵了,然后作为了一个DDOS的节点。

这种情况下,应该如何解决?
第 1 条附言 · 2013-09-12 22:55:25 +08:00
找到了木马文件了。。
已经删除了。
但是还是有点问题。。。。。

周末重装算了。。。
服务器 入侵 ddos26 条回复 • 1970-01-01 08:00:00 +08:00
Livid 1
Livid V2EX Moderator 2013-09-12 14:46:08 +08:00 ❤️ 1
备份数据之后重装。关掉 ssh 的密码验证,只用证书。
BackBox 2
BackBox 2013-09-12 14:49:16 +08:00
@Livid 有很多很多个网站,备份有啥好的选择吗?

怎么知道是因为啥原因入侵了,我觉得不是ssh的原因。
msputup 3
msputup 2013-09-12 14:57:57 +08:00
查看服务器日志吧。
shiny 4
shiny 2013-09-12 14:58:27 +08:00
网站是否使用了 PHP?是否使用了开源程序?
crny520 5
crny520 2013-09-12 14:59:36 +08:00
@shiny 😛 DeDe
BackBox 6
BackBox 2013-09-12 15:00:30 +08:00
@shiny 是的。全是php 全是开源。我觉得应该是程序漏洞,但是不知道如何侦查。。
BackBox 7
BackBox 2013-09-12 15:00:50 +08:00
@msputup 好多好多好多。。。。网站太多了。。
ivenvd 8
ivenvd 2013-09-12 15:07:00 +08:00
@Livid 不一定是 ssh 的原因,webshell 的可能性更大。
BackBox 9
BackBox 2013-09-12 15:08:05 +08:00
@ivenvd 我觉得就是webshell。但是这个怎么破?
ivenvd 10
ivenvd 2013-09-12 15:10:58 +08:00
@BackBox 看看访问日志里面有没有线索,注入之类的话应该会有不寻常的 URL 吧?
BackBox 11
BackBox 2013-09-12 15:13:31 +08:00
@ivenvd 难道没有工具可以分析日志吗?手动分析有点困难。
msputup 12
msputup 2013-09-12 15:21:19 +08:00
@BackBox 有工具可以分析,但是具体的我没有了解过,你可以通过webshell入手,或者通过文件创建时间这类入手。另外dede的漏洞实在太多了。

首先扫webshell和一句话,因为大部分人更喜欢用菜刀。
如果没找到。
可以试下列各网站目录,然后查看文件修改时间(比如dede很多漏洞,都会创建文件或者修改某个文件),当然这是一个笨方法的。
还有个方法,自己模拟入侵一遍。哈哈,漏洞全知。

另外针对这类的话,主要原因还是在于权限上
shiny 13
shiny 2013-09-12 15:23:48 +08:00
@BackBox 就我线上的几个 dede 系统(听说一些 wordpress 系统也被webshell 了)来看,很容易被批量扫描,自动写入 ddos 客户端。你说的特征很像这种情况。

你可以试试搜索 php 文件里的 eval 字符串(比如在 Linux 下到 web 目录输入「grep -r “eval(” . –include=*.php」) 很容易抓出有问题的木马。

有不少临时解决办法。
shiny 14
shiny 2013-09-12 15:32:22 +08:00 ❤️ 1
@BackBox 你站太多是不应该看日志的。站多,首先应该考虑禁用一部分函数(比如 ignore_user_abort、set_time_limit、fsockopen),甚至关停一些垃圾站或者关闭 PHP 权限。

如果网站比较重要,首先应该抓到木马客户端,根据文件创建时间查该天日志,找到入侵漏洞来源然后补漏洞删文件。删除没有用到的组件。另外还要做权限设置。
BackBox 15
BackBox 2013-09-12 17:13:04 +08:00
@msputup 自己咋入侵。。
msputup 16
msputup 2013-09-12 17:22:54 +08:00 ❤️ 1
@BackBox 比如你服务器上有10个DEDE站,10个wordpress站。
wordpress的安全性是大于dede的。所以先检测dede站
如 www.adede.com www.bdede.com
先自检测adede.com的漏洞
再检测bdede.com的漏洞
BackBox 17
BackBox 2013-09-12 22:54:51 +08:00
@msputup 问题是用啥检测。。
BackBox 18
BackBox 2013-09-12 22:55:18 +08:00
找到了木马文件了。。
已经删除了。
但是还是有点问题。。。。。

周末重装算了。。。
lvye 19
lvye 2013-09-13 09:22:16 +08:00
重装解决不了问题的,还是会被入侵,dede是个万年坑,楼主早点跳出来比较好。
msputup 20
msputup 2013-09-13 10:01:55 +08:00
@BackBox 自己手动,一般的入侵方法,百度搜索下就有了。像dede这类的,多数是用0day,另外,dede*好删除member文件夹,还有data文件夹需要做什么的给忘记了。
就像dede*新的0day貌似是利用plus下的一个文件的。
BackBox 21
BackBox 2013-09-13 13:37:46 +08:00
@lvye 恩恩。。
有啥好用 简单易上手的cms推荐?
BackBox 22
BackBox 2013-09-13 13:46:06 +08:00
@lvye 已近决定跳出来了。
@msputup
@shiny
找到了那个入侵者的ip。。有啥办法对付他吗。
msputup 23
msputup 2013-09-13 17:02:52 +08:00
@BackBox 没办法,IP一般都不是固定的。而且有些可能是V.P.N了。所以无解。
BackBox 24
BackBox 2013-09-13 18:26:34 +08:00
@msputup 应该不是。。
日志多处都说的是那个IP…
msputup 25
msputup 2013-09-13 22:21:21 +08:00
@BackBox 那可能是通过服务器做跳板的。
winsyka 26
winsyka 2013-09-13 23:05:39 +08:00
看描述应该是骇客在你的服务器上种植了个php ddos工具用来作为botnet攻击别人……