iOS面试知识点现在进入本篇的正题。本篇的面试题是我认为比较好的iOS开发基础知识点,希望大家看过这后在理解的基础上掌握而不是死记硬背。死记硬背很快也会忘记的。1 iOS基础1.1 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是
写在前面本文主要介绍Mach-O、编译链接、符号分类符号可能平时开发的时候接触不多,本文会从新手视角介绍一下这个在编译链接阶段默默付出的家伙一、MachO1.MachOMach-O(MachO Object)是macOS、iOS、iPadOS存储程序和库的文件格式。对应系统通过应用二进制接口(application binary interface,缩写为ABI)来运行该格式的文件Mach-O格式
转载
2023-10-01 16:23:59
426阅读
1.1 不可见通知,主要是有系统发出的,没有界面提示,用户无法用肉眼直接捕捉到的。如键盘弹起事件。 1.2 可见通知,主要是哪些在前台运行的应用程序发生了一些用户感兴趣的事,或者服务器端为了给用户发送某些特性的消息,给用户发出的一种推送通知。 其中可见通知又分为本地推送,不需要连接网络,在手机系
我们在程序中看到大量的减号、中括号、中括号、@等等陌生符号,我们下面进行一一解释:1)减号(或者加号)减号表示为实例方法,必须使用类的实例才可以调用的。比如C语言中,一个方法的写法可能是:void hello(bool ishello)
{
......
}用Objective-C写出来就是-(void) hello:(BOOL)ishello
{
......
}加号表示类方法,这类方法是可以直
转载
2024-01-26 18:04:47
82阅读
尖括号: angle bracket
方括号: square bracket
花括号: curly brace
圆括号: parentheses
逗号: comma
冒号: colon
逗号: semicolon
下划线: underline
百分号: percent
逗号分隔: comma-delimited
横向的: landscape
纵向的: portrait
转载
2023-06-08 22:33:16
193阅读
在实际的开发过程中,我们的app如果出现crash情况,一般会通过bugly或者firebase等工具,上报到控制台,方便我们进行分析。但是有的时候也会存在一些crash信息没有上报,我们开发无法根据测试反馈的流程复现crash的情况。针对这种情况,只能让测试把手机打开一些功能,来方便我们定位问题。具体步骤如下: 共享iphone分析开关打开,这样有crash信息就会记录下来 如果有crash
转载
2023-11-14 10:24:37
210阅读
说明: 这里的调试是指使用 lldb 远程调试 iOS 应用 设置断点是指在 ObjC 方法上设置断点 使用场景: 1、调试被 strip 了的 iOS 应用 2、调试被 strip 了的 iOS 系统 dylib 在调试时没有符号的 iOS 应用时,设置断点非常不方便: 1、App:在没有开启 ASLR 时,需要首先找到方法的地址,然后针对地址设置断点 2、Dylib:
转载
2024-05-06 17:07:52
33阅读
1.如何输入省略号 先按123再按#+=然后长按.(点)就可以看到…了,标点符号快速输入法:输入的时候如果想快速输入标点符号,可以按住“123”键后,滑动到你要输入的标点符号上松开,你可以看到符号已经输入并且键盘自动回到了字母键盘。 另外,输入标点符号后按空格,也会自动跳回到字母键盘,这对于英文输入是非常人性化的。双击空格,则会自动输入“.”,输入一长串文字后按两下空格会出现
转载
2023-09-01 16:15:57
448阅读
本文主要是通过Mac app 来进行分析的,iOS 有细微差别,会在后面具体指出。1.符号化目的符号化的目的就是将下图最上端的堆栈变成最面下面的堆栈的过程: 其中 DSYMTest 为测试app的名字 在笔者实际工作中还遇到了两种部分符号化的堆栈,如下:红圈中_mh_execute_header 可能未成功进行符号化,所以这里可以将 _mh_execute_header 用load address
转载
2024-05-27 17:16:50
207阅读
在进行iOS开发时,开发者们常常会遇到一个看似小但实际上可能会导致严重问题的情况:“iOS过滤符号”。这些符号通常是代码或数据中某些不兼容的部分,导致了系统的异常行为。在本文中,我将深入探讨这个问题的背景、表现、根因、解决方案和预防优化的过程,并给出具体的技术细节和可视化图示,以便更好地理解和处理这个问题。
## 问题背景
在多种业务场景下,iOS应用需要与外部系统进行数据交互。这种交互过程中
1.背景与项目难点1.1 背景由于公司之前使用的友盟要收费,filebase服务由谷歌提供,存在数据合规风险。需要实现稳定性分析功能,通过支持app崩溃信息实时采集、实时上报、实时自动解析并定位出代码问题,帮助研发同学及时定位崩溃原因并修复;同时对崩溃信息进行统计和可视化展示,通过数据辅助研发和PM同学进行产品功能迭代决策。1.2 难点ios端崩溃文件未经符号化且端上无法直接将符号化后的文件上传发
约束的警告使用符号断点定位警告SymbolModule 模块筛选Condition 触发条件Ignore 触发开始次数Action 触发活动AppleScript 脚本Capture GPU Frame GPU帧捕获Debugger CommandLog MessageShell Command 执行Shell命令Sound 触发声音Options约束的警告在使用Masonry的过程中发现有时候会
转载
2024-06-12 15:33:48
133阅读
在iOS开发中,整除符号的处理常常成为编程中的一大难题。尤其是在涉及数学计算或计算公式时,我们需要用到整除运算符,以确保数值运算的准确性与合理性。本文将从技术定位到核心维度,层层深入,详细说明如何在iOS环境中处理整除符号相关的问题。
### 背景定位
在计算机科学中,整除(Floor Division)是指用一个整数除以另一个整数时,只保留整数部分。这一概念尤其在iOS开发中至关重要,因为我
# iOS卡死符号实现指南
在iOS开发中,有时我们需要在应用中实现一些特定的功能,如“卡死符号”。这个功能通常用于指示应用程序的状态,或者在某个特定条件下进行交互。今天,我将指导你如何一步一步完成这一任务。
### 流程概述
下面是实现“iOS卡死符号”的步骤。我们将用一个表格展示主要流程:
| 步骤 | 操作 | 代码示例
原创
2024-09-17 06:40:02
60阅读
一、学习语法之前的提醒 1、 C语言属于一门高级语言,其实,所有高级语言的基本语法组成部分都一样,只是表现形式不太一样。 2、 就好像亚洲人和非洲人,大家都有人类的结构:两只手、两只脚、一个头,只是他们的外表不一样,比如肤色,脸型。 3、 因此,你掌握好了一门高级语言,再去学习其他高级语言,那是相当快的。 4、而且,很多其他高级语言,Object-C等,都是基于C语言、从C语言衍生出来的,
在Mac的快捷键中经常会有一些符号,比如⌘、⌥、⇧、⌃等,而Mac下只有command键上有一个⌘的符号,而其他按键均没有符号,很多人可能不知道这是什么意思,之所以只有command键上有一个符号,而其他按键上没有,是因为: 1)只有command健才是Mac下唯一独有的一个特殊按键,而shift、alt(option)、control、caps lock、tab等在其他系统下都有,所以Mac在
转载
2024-01-14 11:55:25
117阅读
一、功能模块SDK封装步骤:1、创建IOS Framework工程先我们需要创建一个iOS的CocoaTouch工程,点击Next,输入我们Framework的名字即可。下方我们暂且将该Framework的名字命名为“CreateLoginSDKFramework”。操作如下所示:Xcode ——》File\New\Project ——》iOS\Framework and Library\Coco
转载
2023-09-12 22:02:22
313阅读
一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。 二、正则表达式的语法 看几个例子:手机号码,密码(3~30个字符,不允许特殊字符),邮箱判断。 - (BOOL)validatePhoneNumber:(NSStri
转载
2024-07-26 15:32:43
84阅读
在iOS开发过程中,很多开发者会遇到将原生SDK中的`m`文件暴露给其他模块或应用的问题。这个问题通常涉及到如何正确地公开SDK的实现细节,以便于其他开发者能够顺利地进行二次开发和使用。以下是我在处理这一问题时的详细记录。
### 问题背景
在某些情况下,我们希望将iOS原生SDK中的实现文件(例如`.m`文件)暴露给外部应用。这通常是为了提供某种特定功能或API供其他开发者使用。问题的关键在
Shim(Shiv) 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现.比如:google和github上都有一段用于兼容ie等低版本浏览器的html标签库 html5shivps: shim有时也叫shivPolyfill 在2010年10月份的时候,Remy Sharp在博客上发表了一篇关于术语"polyfil