{"id":19989324,"url":"https://github.com/marcsteven/iosinterviewknowledge","last_synced_at":"2026-03-06T05:53:06.857Z","repository":{"id":185332937,"uuid":"310588070","full_name":"MarcSteven/iOSInterviewKnowledge","owner":"MarcSteven","description":"iOS interview ","archived":false,"fork":false,"pushed_at":"2020-11-12T06:57:40.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-12T12:17:40.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarcSteven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-11-06T12:12:02.000Z","updated_at":"2020-11-12T06:57:42.000Z","dependencies_parsed_at":"2023-08-01T14:52:26.716Z","dependency_job_id":null,"html_url":"https://github.com/MarcSteven/iOSInterviewKnowledge","commit_stats":null,"previous_names":["marcsteven/iosinterviewknowledge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcSteven%2FiOSInterviewKnowledge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcSteven%2FiOSInterviewKnowledge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcSteven%2FiOSInterviewKnowledge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcSteven%2FiOSInterviewKnowledge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarcSteven","download_url":"https://codeload.github.com/MarcSteven/iOSInterviewKnowledge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241430315,"owners_count":19961635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T04:46:17.815Z","updated_at":"2026-03-06T05:53:06.815Z","avatar_url":"https://github.com/MarcSteven.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# iOSInterviewKnowledge\niOS interview \n## 基础问题\n1，swift中的let和var是什么？\n\n2，swift中的optional和nil是什么，nil在oc中是什么？\n\n3，struct和class的区别是？如何选择\n\n4，iOS中内存是怎么管理的\n\n5，属性和实例变量在oc和swift中是什么？\n\n6，OC和swift中的协议是什么？如何使用\n\n7，分类和扩展是什么？有什么区别?如何使用\n\n8，闭包是什么？如何使用\n\n9，什么是MVC？\n\n10，什么是单例？单例怎么使用\n\n11,iOS中的delegate 模式\n\n12，什么是KVO？什么是KVC\n\n13，iOS应用的生命周期\n\n14，什么是ViewController？它的生命周期\n\n## 网络篇\n\n1，什么是HTTP？什么是HTTPS?它们的区别\n\n2，什么是Rest？\n\n3，iOS中你是怎么实现网络请求的？\n\n4，网络层应该放置什么呢\n\n5，什么是NSURLSession？ 如何使用\n\n6，AFNetworking 和Alamofire是什么？如何使用\n\n7，如何处理网络请求中的多线程？\n\n8，你如何序列化映射后台返回的json data\n\n9，如何下载图片？\n\n10，如何缓存图片？\n\n11，如何下载大文件\n\n12，你是否用过socket\n\n13，RestKit是什么？它用于做什么，它的优点和缺点\n\n14，你替代RestKit的方案是？\n\n15，你怎么测试网络请求的？\n\n## 数据存储\n\n1，iOS中的数据存储是什么？\n\n2，你用什么来做数据存储？\n\n3，什么是NSCoding？\n\n4，什么是NSUserDefaults？\n\n5，KeyChain是什么，什么时候需要用它呢\n\n6，你怎么保存数据到一个disk呢？\n\n7，当你存储数据的时候如何做数据映射的\n\n8，你的应用中你如何做数据库设计，存储合并的呢？\n\n\n\n## UI问题\n\n1，在UI开发中最大的挑战是什么？\n\n\n2，你用什么来用于你的UI准确布局？\n\n3，CGRect的frame是什么？什么时候你用它？\n\n4，view和layer是什么？\n\n5，什么是AutoLayout？什么时候你要它呢？\n\n6，compression resistance和content hugging priorities 是什么？\n\n7，AutoLayout和多线程怎么一起工作？\n\n8，使用代码和storyboard来编写界面的优点和特点\n\n9，在多人团队中你如何和多人协同开发？\n\n10，你是如何混用frame和AutoLayout的\n\n11，iOS中对应的动画选项有哪些？\n\n12，你是如何使用TableView的？\n\n13，你如何用UICollectionView\n\n14，你如何使用UIScrollView\n\n15，什么是UIStackView？什么时候用它？\n\n16，什么是UITabbarController？\n\n17， UI响应式布局你用过哪些\n\n18，你是如何和设计稿保持一像素的完美布局的？\n\n19， 你是如何做UI单元和迭代测试的呢？\n\n\n## 架构和设计模式问题\n1，MVC和MVVM有什么区别？\n\n2，什么是VIPER？\n\n3，讲讲UBer的RIB架构\n\n4，iOS分层设计的话要怎么做呢\n\n5，iOS中你怎么做依赖管理的？SPM和Cocoapods的优劣\n\n6，Solid原则是什么? 你在开发的时候怎么做的？\n\n7，什么是函数式编程？什么是函数响应式编程？\n\n8，你所了解的设计模式\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcsteven%2Fiosinterviewknowledge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcsteven%2Fiosinterviewknowledge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcsteven%2Fiosinterviewknowledge/lists"}