ios开发
文章平均质量分 66
饭小粒
蓝牙&Android&iOS&EN
展开
-
iOS工程报错及解决办法整理
1.错误:rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]将~/Library/Developer/Xcode/DerivedData/目录下的工程缓存删除掉即可,然后重启工程编译。商业转载请联系作者获得授权,非商业转载请注明出处。转载 2023-04-04 16:57:03 · 924 阅读 · 1 评论 -
iOS 播放音频的几种方法
但是官方的示例只有一些简单的用法,从文档中我们发现可以通过 AudioServicesAddSystemSoundCompletion 方法为音频播放添加 CallBack 函数,有了 CallBack 函数我们可以解决不少问题,比如可以克服 System Sound Services 本身不支持循环播放的问题。//使用NSData创建。AVAudioPlayer 可以播放任意长度的音频文件、支持循环播放、可以同步播放多个音频文件、控制播放进度以及从音频文件的任意一点开始播放等,更高级的功能可以参考。转载 2023-03-21 10:19:17 · 1458 阅读 · 0 评论 -
iOS App 的编译过程
Objective-C 的文件中,只有 .m 文件会被编译 .h 文件只是一个暴露外部接口的头文件,它的作用是为被编译的文件中的代码做简单的共享。知道了 Swift 和 Objective-C 的文件编译流程,对于两个混编的问题就变成了如何将两种代码链接起来的问题,在 Swift 有 clang 导入器,将 Objective-C 的 API 导入,而对于 Objective-C 为主要语言的项目中,Swift 会被 Xcode 编译为 .o 和 .h 文件,头文件供 Objective-C 文件使用。转载 2022-11-08 21:40:27 · 1135 阅读 · 0 评论 -
iOS开发:iOS的静态库和动态库 【.a 和framework】的说明及博客汇总
2、图片资源的处理:两种静态库,一般都是把图片文件单独的放在一个.bundle文件中,一般.bundle的名字和.a或.framework的名字相同。4、如果一个静态库很复杂,需要暴露的.h比较多的话,就可以在静态库的内部创建一个.h文件(一般这个.h文件的名字和静态库的名字相同),然后把所有需要暴露出来的.h文件都集中放在这个.h文件中,而那些原本需要暴露的.h都不需要再暴露了,只需要把.h暴露出来就可以了。Swift 制作静态库:Swift 制作静态库_酸柠檬的博客-CSDN博客_swift 静态库。转载 2022-11-07 17:42:55 · 1565 阅读 · 0 评论 -
安装homebrew, cocoapods
4、把.git.zip解压缩然后将.git隐藏文件放在~/.cocoapods/repos/master路径下。2、把下载的文件文件夹名改为master,并放在路径~/.cocoapods/repos下。链接:https://www.jianshu.com/p/3c039ec6c45d。商业转载请联系作者获得授权,非商业转载请注明出处。然后pod repo list查看如图所示-- 安装成功。官方的无法连接安装, 使用下面的进行使用。接着安装ruby,继续在终端中进行。安装安装 Homebrew。转载 2022-11-07 14:24:49 · 662 阅读 · 0 评论 -
Mac中判断是否安装了Command-line Tool
xcode-select --install 实际上是启动了 /System/Library/CoreServices/Install Command Line Developer Tools.app 应用,该应用从Apple服务器上下载「CLToolsExecutables.pkg」和「MacOSX109_SDK.pkg」执行安装。在Developer Apple网站下载Command Line Tools (OS X Mavericks) for Xcode - Late October DMG安装。转载 2022-11-07 13:54:26 · 1172 阅读 · 0 评论 -
iOS开发 - 「Swift 学习」Swift协议
可以在协议的继承列表中,通过。注意:class关键字必须是,其后,才是其他继承协议。class,// 协议的定义内容}}//用class修饰符在协议的继承列表中定义类的专属协议ExclusiveProtocol}//TcpProtocol协议可以被结构体遵循print("市第\(num)中学")}}//ExclusiveProtocol协议已经不能被结构体类型遵循了/*print("市第\(num)医院")}}*/转载 2022-11-03 10:01:38 · 587 阅读 · 0 评论 -
Xcode 11编译错误Multiple commands produce的解决
不过由于不是所有的第三方库我们都可以修改,并且我的工程中被覆盖的只是appIcon.assets,也就是app的图标文件,我只需要将主工程中的AppIcon.assets修改一下名称,就可以解决,不需要再进行复杂的修改。绝大多数的情况下就能解决这个问题。这主要是因为,在一些pod库中,图片是通过s.resource 来导入,这会导致cocoapod会将pod库中的图片直接复制到主工程中的Assets.car中,如果本来主工程中有同名文件,就会被覆盖。修改完后,发现pod中的图片会覆盖主工程中的同名文件。转载 2022-10-30 08:59:24 · 5446 阅读 · 0 评论 -
Swift中的@escaping是什么?
这意味着我们需要将其标记为故意的,因此doSomething(using :)的调用者将知道他们正在处理一个闭包,该闭包将超过传递给它的函数的范围,这意味着他们需要采取措施预防循环引用或内存泄露。因为闭包是在doSomething(using :)范围内立即执行的,所以我们知道在闭包内部所做的任何事情都不会泄漏或超过doSomething(using :)范围的寿命。简而言之,@escaping用于通知采取闭包的函数的调用者,该闭包可能已存储或超出了接收函数的范围。如果您曾经编写或使用过将。原创 2022-10-25 18:01:00 · 1732 阅读 · 0 评论 -
通过此方法可以揭秘iPhone与其他蓝牙产品的交互流程啦,iPhone蓝牙HCI log的抓取方式详解
至此,你通过ATS可以看HCI的交互了,但是有一个弊端,这个主要是用来开发IAP2的,所以HCI的交互没有像Ellisys/Frontline/Wireshark协议显示那么齐全,所以最佳的的作用应该是看linkkey,解密air log,直接通过air log来看交互流程!第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。转载 2022-10-09 11:42:33 · 1236 阅读 · 0 评论 -
Swift 与 Kotlin 的简单对比(转)
作者:private_object链接:https://www.jianshu.com/p/6f4e32242541来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。转载 2022-08-16 19:21:10 · 636 阅读 · 0 评论 -
苹果官方文档阅读的入门
Learning Objective-C: A Primer》是非常初级和简单的入门,适合先阅读。《Programming with Objective-C》超微复杂一点点,适合后阅读。一般人建议先学习语言,我反之建议先做了一个App,然后再学习语言。原因有几个,首先现代开发工具,往往不是用来开发控制台程序的,上来就会有框架,光懂语言不会使用IDE,甚至可能会更麻烦。...转载 2022-08-15 16:59:07 · 638 阅读 · 0 评论 -
iOS多语言-跟随系统/应用内切换
1.创建多语言文件2.点击下图中按钮,会首先显示默认的英文语言类型3.PROJECT -> Localizations -> 点击"+"按钮添加需要的语言类型结果:4.设置语言Localizable.strings(Chinese, Simplified)"BTNTITLE" = "切换";"TITLE" = "你好 世界";"COUNTRY" = "中国: %@";Localizable.strings(English转载 2022-02-18 17:07:28 · 1741 阅读 · 0 评论 -
Xcode 版权问题看我一篇就够了
1、第一种方式image.png2、第二种方式打开工程文件,.xcodeproj——显示包内容——project.pbxproj,双击打开 找到ORGANIZATIONNAMEORGANIZATIONNAME = xx公司注意:如果公司名称是中文,公司名称两边需要添加英文引号,如果是英文可以不需要引号。3、第三种方式将 IDETemplateMacros.plist 放到 ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plis转载 2022-02-10 15:07:12 · 314 阅读 · 0 评论 -
xcodebuild使用
转自:xcodebuild命令简单使用 - 简书流程build archive IPA teamidxcodebuild命令简单使用前提准备证书并熟悉xcodebuild介绍,以及官方文档xcodebuild -showsdks查看可用的SDK xcodebuild -list查看项目全部的targets,schemes和configurations使用xcodebuild clean [-optionName]...清除编译过程生成文件xcodebuild clean -转载 2022-01-12 19:35:10 · 2506 阅读 · 0 评论 -
iOS 性能监控(1)——CPU、Memory、FPS
前段时间,在公司的 App 中集成了一个性能监视器,效果如下所示。在这个过程中,扒了一些性能监测开源框架的源码,并学习了其中的原理。本文就对此做一些简要的总结。image概述通常情况下,App 的性能问题并不会导致 App 不可用,但是会潜在地影响用户体验。比如:CPU 占用率过高会导致电量消耗过快,手机发热等问题。为了能够主动、高效地发现性能问题,避免 App 质量进入无人监控的状态,我们需要对 App 的性能进行监控。目前,对 App 的性能监控,主要分为线下和线上两种监控维度。...转载 2021-12-22 16:09:01 · 4749 阅读 · 0 评论 -
ios10下,手机连接xcode控制台不显示日志,解决办法
按照下面设置:run- > environment variables->添加 OS_ACTIVITY_MODE ,value内容为空转载于:https://www.cnblogs.com/gatsbywang/p/5997810.html相关资源:xcode8关闭控制台不打印不信息的解决方法(图文详解)_""-其它代码......转载 2021-12-17 16:21:53 · 981 阅读 · 0 评论 -
iOS Crash收集与分析详解(基础篇)
前言:最近测试妹子老是抱怨我偶现的Bug不好复现,我这边出于偷懒(其实是工作很忙)一直再说不能复现Bug的妹子不是好测试,最近闲下来了,正好谈谈Crash的收集和分析。一、Crash收集噔噔噔噔~万能的官方文档又出现了,先上地址Understanding and Analyzing Application Crash ReportsCrash收集与解析流程图通过上图我们可以发现Crash的收集主要有两种方式。1、使用Xcode从设备获取崩溃日志:如果你把你的手机连接到Mac转载 2021-12-14 16:27:08 · 1847 阅读 · 0 评论 -
iOS_异常堆栈报告分析
在使用 Xcode 工具的开发过程中, 面对运行异常, 很多初学者往往毫无头绪, 不知道如何跟踪异常堆栈, 如何分析异常堆栈报告. 这里就给大家介绍如何<b>跟踪异常堆栈</b>和<b>分析堆栈报告</b>.<h4>1>跟踪异常堆栈</h4>默认情况下, 使用 Xcode 工具进行开发时, 产生异常时会有信息输出, 也会有异常堆栈输出, 不过它们都是晦涩难懂的内存地址, 我们需要单独添加程序代码来处理这些程序.<b&转载 2021-12-10 17:28:24 · 490 阅读 · 0 评论 -
用Swift的FileHandle进行文件写入
在项目中我们经常有针对二进制或者文本文件进行局部读写、追加数据等需求。在C语言里用fopen系列函数就能解决。而在Swift语言里可以通过FileHandle来处理。下面通过代码示例来讲解下FileHandle的用法。首先先定义一个文件路径,作为测试文件let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + "test.txt"接下来判断文件是否存在,不存在转载 2021-11-29 14:09:12 · 1329 阅读 · 0 评论 -
尝试理解Swift中的@escaping
要理解@escaping,首先需要理解closure, 要理解closure,首先理解匿名函数。先理解匿名函数要在Swift中构造匿名函数,需要:创建函数体,包括花括号,但是不需要函数声明 如果必要,将函数的参数列表与返回类型作为花括号中的第一行,后跟关键字in.例子1: 将以下函数变成匿名函数:func whatToAnimate(){ self.myButton.frame.origin.y += 20}匿名函数版本:{ () -> () in转载 2021-10-28 18:57:08 · 430 阅读 · 0 评论 -
iOS注册通知中心UserNotifications基础使用(Swift)
读完这篇文章你将了解到, 在项目开发中, 如何快速掌握消息推送的API调用, 完成本地通知的注册、消息的发送以及接受消息, 本文不做详细的关于推送的高级用法介绍, 仅为了能在日常开发中, 避免一些很基础的坑,在此记录一下而已注册本地通知便于观察我们在didFinishLaunchingWithOptions中完成通知注册:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOp转载 2021-10-28 16:30:07 · 1222 阅读 · 0 评论 -
Swift项目中快速集成蓝牙(Ble4.0)模块
引言此篇为实践篇,理论篇请见App蓝牙通讯技术背景Swift项目中简单快速的集成iOS蓝牙模块,对蓝牙的操作封装了一个蓝牙管理类。(EasyBleManager)功能如下同步获取蓝牙状态,使用更加的灵活和便捷扫描设备和连接设备可配置指定的设备名称、设备可被发现的Service扫描和连接超时设置添加设备准备就绪状态,设备连接成功后,并不能直接读写操作,要等设备准备就绪后,就随时可以读写操作方便简单的读写操作开启和关闭调试日志具体用法配置需要操作的特性uuidlet D转载 2021-10-28 10:38:32 · 1071 阅读 · 0 评论 -
Macbook/Mac OS中阅读代码软件推荐
在Windows中用习惯了Souce Insight,切换到使用Macbook后,看代码少了利器。Source Insight没有Mac OS版本。但我们通过在MacBook中安装Crossover或Wine,然后在Crossover或Wine中安装Source Insight。在Macbook中,我们也可以像Windows一样,使用强大的Source Insight来阅读代码。Crossover软件官网:https://www.codeweavers.com/在Mac OS中,推荐一款转载 2021-10-25 19:25:08 · 4836 阅读 · 0 评论 -
Swift 集合(Set)
demo链接:https://share.weiyun.com/5VRfIYP参考链接:http://www.swift51.com/swift4.0/chapter2/04_Collection_Types.html#sets集合(Set)用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以使用集合而不是数组。注意:Swift的Set类型被桥接到Foundation中的NSSet类。关于使用Foundation和Cocoa中Set的知识,参见U.转载 2021-10-25 11:18:00 · 235 阅读 · 0 评论 -
1025note
1.非常需要花时间去看的codeGitHub - NordicSemiconductor/IOS-nRF-Toolbox: The nRF Toolbox is a container app that stores your Nordic Semiconductor apps for Bluetooth Low Energy in one location.https://github.com/NordicSemiconductor/IOS-nRF-Toolbox2.学习ios swift的数据结构原创 2021-10-25 11:15:57 · 91 阅读 · 0 评论 -
Swift项目中快速集成蓝牙(Ble4.0)模块
引言此篇为实践篇,理论篇请见App蓝牙通讯技术背景Swift项目中简单快速的集成iOS蓝牙模块,对蓝牙的操作封装了一个蓝牙管理类。(EasyBleManager)功能如下同步获取蓝牙状态,使用更加的灵活和便捷扫描设备和连接设备可配置指定的设备名称、设备可被发现的Service扫描和连接超时设置添加设备准备就绪状态,设备连接成功后,并不能直接读写操作,要等设备准备就绪后,就随时可以读写操作方便简单的读写操作开启和关闭调试日志具体用法配置需要操作的特性uuidlet D转载 2021-10-23 17:15:43 · 741 阅读 · 0 评论 -
xcode修改文件名
1.右键,show in Finder,找到文件所在文件夹2.在文件夹中将文件重命名3.把工程里原来的文件删掉4.把文件夹中重命名好的文件重新拖到工程里转载 2021-10-15 11:07:02 · 1426 阅读 · 0 评论 -
iOS中PCH文件的使用
1. PCH简介Xcode6之前创建的工程都自带PCH文件,Xcode6之后创建的工程默认不带PCH文件,苹果可能出于节省编译时间的考虑,不推荐开发者使用PCH。 在PCH文件中定义的宏,导入的头文件在整个工程中都会引用。2. PCH文件的作用存放一些公用的宏 存放公用的头文件 自定义Log输出日志3. Xcode中如何自己创PCH文件1.command + N 创建Snip20160629_1.png2.PCH文件名建议与工程同名Snip2016062..转载 2021-10-14 11:51:37 · 979 阅读 · 0 评论 -
苹果开发者账号注册-您在注册时提供的地址无效或者不完整
1、原因说明注册开发者账号所用的信息与身份证上的信息前后不一致。 2、解决办法往后注册appleID使用的信息要使用身份证上的,邮编也要与身份证地址一致对应 回复模版: 这是我更新后的信息: 名字 (拼音/英文):R 姓氏(拼音/英文):Y 区,街道,单元号(拼音/英文):No. 3 Huancheng North Road, Shacheng Street, Longwan District 城市(拼音/英文):Beijing City 省(拼音/英文):B转载 2021-10-12 17:12:25 · 10027 阅读 · 0 评论 -
iOS上获取崩溃日志的N+1种方法
iOS上获取崩溃日志的N+1种方法正常情况下,程序崩溃之后都会有崩溃日志保存在我们的手机里面,当崩溃的时候,我们可以通过如下几种方式找到我们的崩溃日志。方法一:从本机隐私设置里面的里面导出来当本机发生崩溃的时候,你可以从系统设置->隐私->分析与改进里面找到你当时的崩溃日志,通常,你的崩溃日志格式包含程序包名,时间以及后缀ips或者beta.点击进去,右上角点击分享可以各种方式分享出去方法二:使用Xcode导出崩溃日志1.电脑连接手机,打开xcode,选择..转载 2021-10-08 19:45:25 · 7197 阅读 · 0 评论 -
iOS自动布局高级用法 && 纯代码约束写法
本文主要介绍几个我遇到的总结的高级用法(当然我相信肯定有不少比这还高级的)。 简单的storyboard中上下左右约束,固定宽高啥的用法在这里就不做赘述了。autolayout自动布局是iOS6以后出现的,但是在开始的一段时间里大家并不怎么会用,都是一上来先勾掉。之后随着5s,iPhone6的出现屏幕多种多样。用多层if来判断尺寸已经完全hold不住了才开始学习自动布局。在这之前有个叫自动伸缩的autoresizing属性,这个主要用于一个控件和自己父控件之间的关系。只有autolayout才真正可转载 2021-10-08 16:05:46 · 550 阅读 · 0 评论 -
ios 通过CocoaPods安装第三方库
1 安装CocoaPods之前 需要mac先安装Ruby环境1.1打开终端curl -L https://get.rvm.io | bash -s stable1.2source ~/.rvm/scripts/rvm1.3 检查一下是否安装正确rvm -v rvm 1.22.17 (stable) by Wayne E. Seguin wayneeseguin@gmail.com, Michal Papis mpapis@gmail.com [https://rvm.io/...转载 2021-10-08 11:43:41 · 261 阅读 · 0 评论 -
基于CocoaPods安装Masonry及配置使用
前言CocoaPods是一个用来管理第三方依赖库的工具。可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供开发使用。CocoaPods can help you scale your projects elegantly.先看一下安装配置完的效果:安装完后的工程目录会发现多了一个Pods路径,下面已经下载好了所需要的第三方库。然后在之前熟悉的工程文件中就可以直接拿来用了:屏幕快照 201转载 2021-10-07 12:03:14 · 595 阅读 · 0 评论 -
Podfile语法参考(译)
本文翻译自官方的Podfile Syntax Reference,也参考了之前一位博主的翻译,若翻译中有什么异议,欢迎留言指正。PodfilePodfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。一个Podfile可以非常简单:pod 'AFNetworking', '~> 1.0'也可以配置的复杂一点,如下:source 'https://github.co转载 2021-10-07 11:41:54 · 497 阅读 · 0 评论 -
iOS swift在写蓝牙中心和蓝牙外设demo时的发现和说明
两个demo在下面的博客中查看:iOS swift 蓝牙详解(蓝牙中心demo,蓝牙外设demo(可替代mac蓝牙串口调试工具),蓝牙中心框架,gif演示)https://xingxingyueliang.blog.csdn.net/article/details/113246128文章目录1.CBCentral CBPeripheral程序员不能自己创建,只能由系统创建,然后程序员在代理方法中获取1.2 maximumUpdateValueLength(CBCentral)蓝牙中心最多一包能转载 2021-09-30 16:34:48 · 1612 阅读 · 0 评论 -
关于IOS BLE MTU问题的记录
https://developer.apple.com/forums/thread/93007在连接过程中协商MTU。 iOS将自动使用两个设备支持的最大值。 iOS最多支持185,因此这是将支持的最大值。 如果外围设备支持且MTU小于185,则将使用该值。 没有开放的iOS API来请求MTU更改/更新。https://devzone.nordicsemi.com/f/nordic-q-a/44825/ios-mtu-size-why-only-185-byteshttps://stackove转载 2021-09-30 15:45:32 · 2704 阅读 · 0 评论 -
NSString简单细说(八)—— 识别和比较字符串
版本记录版本号 时间 V1.0 2017.05.07 前言前面我简单的写了些NSString的初始化,写了几篇,都不难,但是可以对新手有一定的小帮助,对于大神级人物可以略过这几篇,NSString本来就没有难的,都是细枝末节,忘记了查一下就会了,没有技术难点,下面我们继续~~~1. NSString简单细说(一)—— NSString整体架构2. NSString简单细说(二)—— NSString的初始化3. NSString简单细说(三)—— NSString初始化4. N转载 2021-09-28 19:38:03 · 303 阅读 · 0 评论 -
NSString简单细说(七)—— 与C字符串的转化
版本记录版本号 时间 V1.0 2017.05.07 前言前面我简单的写了些NSString的初始化,写了几篇,都不难,但是可以对新手有一定的小帮助,对于大神级人物可以略过这几篇,NSString本来就没有难的,都是细枝末节,忘记了查一下就会了,没有技术难点,下面我们继续~~~1. NSString简单细说(一)—— NSString整体架构2. NSString简单细说(二)—— NSString的初始化3. NSString简单细说(三)—— NSString初始化4. N转载 2021-09-28 19:35:41 · 279 阅读 · 0 评论 -
NSString简单细说(六)—— 字符串的长度
版本记录版本号 时间 V1.0 2017.05.05 前言前面我简单的写了些NSString的初始化,写了几篇,都不难,但是可以对新手有一定的小帮助,对于大神级人物可以略过这几篇,NSString本来就没有难的,都是细枝末节,忘记了查一下就会了,没有技术难点,下面我们继续~~~1. NSString简单细说(一)—— NSString整体架构2. NSString简单细说(二)—— NSString的初始化3. NSString简单细说(三)—— NSString初始化4. N转载 2021-09-28 19:34:04 · 493 阅读 · 0 评论