App开发
iOS -> App开发
Morris_
个人笔记!
展开
-
iOS PopoverController
# iOS PopoverController## 背景* UIPopoverController 在iOS9.0 已废弃`UIKIT_EXTERN API_DEPRECATED("UIPopoverController is deprecated. Popovers are now implemented as UIViewController presentations. Use a modal presentation style of UIModalPresentationPo原创 2022-09-27 08:47:52 · 429 阅读 · 0 评论 -
iOS黑暗模式tableViewCell
iOS 13 之后,App可以支持黑暗模式,如不需要可以直接禁掉。参考iOS系统中的自带软件的黑暗模式的适配,可以看看 设置 页面在黑暗(dark)模式下和正常(light)模式下的显示,以此参考来对我们自己的App进行黑暗模式的适配。原创 2022-09-26 11:04:20 · 533 阅读 · 0 评论 -
iOS 蓝牙扫描枪扫描内容不正确
## 背景在移动设备上,使用蓝牙扫描枪,相当于接入了一下外接键盘。我们的客户使用我们的App,并连接蓝牙扫码枪,将扫描的内容传输到我们的App中,App再做出对应的响应,举个例子,较为常见的应用场景就是,拣货员拿着扫码枪,扫描产品上的UPC码,然后在App中收到这个码,请求在这个码的相应信息,展示在App中。## 问题我们的客户比多,各个国家的都有,其中有一个客户是在西班牙,他们在使用扫码枪的时候,发现了一些扫描不准确的问题,例如条码内容是 ’X_ 123‘ 通过扫描后,App接收到的内容变成原创 2022-09-12 10:33:33 · 720 阅读 · 0 评论 -
安装 Apple Beta 版
在Apple正式版发布之前会发布一些公开测试版,如果需要安装可以下载测试版的配置文件,然后下载安装测试版系统。* 安装指南:[https://developer.apple.com/download/all/](https://developer.apple.com/download/all/)* 测试版描述文件下载地址:[https://developer.apple.com/download/](https://developer.apple.com/download/)* 安装原创 2022-09-06 07:27:45 · 1589 阅读 · 0 评论 -
LaunchScreen.storyboard 颜色设置
> LaunchScreen.storyboard 上给默认的view添加背景色值时,发现设置的rgb颜色和在项目代码中设置的颜色存在明显的区别。原创 2022-08-03 15:24:47 · 840 阅读 · 0 评论 -
iOS 操作txt文件
iOS txt 文件的读写原创 2022-06-03 13:43:05 · 1421 阅读 · 0 评论 -
oc swift 混编
oc 和 swift 互调swift 中使用 ocswift 中调用 oc 的类创建一个oc的项目,在项目里创建swift文件的话,Xcode会自动提示,要不要创建桥接文件,如下图所示:选择Create Bridging Header,会生成一个工程名-Bridging-Header.h 的桥接文件,并且在Buding Setting -> Swift Complier 下添加好文件路径的配置,如下图:当然如果不选择创建此文件的话,我们手动创建并配置路径也是可以的。将 swift 需要原创 2022-05-25 10:14:10 · 533 阅读 · 0 评论 -
iOS tableView setAccessoryView 导致应用程序卡死问题
iOS tableView setAccessoryView 导致应用程序卡死问题原创 2022-04-28 08:41:09 · 458 阅读 · 0 评论 -
iOS 蓝牙扫描枪功能
用UITextField这个控件来实现蓝牙扫描的功能原创 2022-03-30 14:24:09 · 943 阅读 · 0 评论 -
WKWebView设置User-Agent的正确姿势
WKWebView设置User-Agent原创 2022-02-14 14:56:37 · 4682 阅读 · 0 评论 -
iOS 导航栏设置
导航栏右侧的Done按钮怎么是蓝色的?导航栏右侧按钮大小设置导航栏标题按钮样式设置导航栏设置颜色…iOS 13之后使用UINavigationBarAppearance来设置标题,按钮的颜色和大小,导航栏的背景等。#import "MMBaseNavigationController.h"@interface MMBaseNavigationController ()@end@implementation MMBaseNavigationController- (void)v.原创 2022-02-18 15:03:12 · 1886 阅读 · 0 评论 -
Cognex Mobile Barcode SDK for iOS
Cognex Mobile Barcode SDK for iOS概述Cognex Mobile Barcode SDK (cmbSDK) 是用于开发移动条码扫描应用程序的SDK。SDK是付费的,但功能很强大。Cognex Mobile Barcode SDK for iOS : https://cmbdn.cognex.com/download#Platforms iOS技术文档地址:https://cmbdn.cognex.com/knowledge/-cognex-mobile-barcod原创 2021-12-22 09:52:18 · 1582 阅读 · 3 评论 -
building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64
Xcode 13M1 Macboook Pro使用模拟器编译iOS项目报 building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64 的错误。从报错上看,M1 电脑上的模拟器是arm架构的,但是link的framework是Simulator-x86_64,所以报错。lipo info 查看了framework支持的架构,是支持arm64的。需要做如下设置:Bui原创 2021-12-22 08:33:19 · 5524 阅读 · 0 评论 -
Code=201 “Siri and Dictation are disabled“
iOS 15 之前的语音识别是使用SpeechKit和AVFoundation两个框架来配合使用。其中主要的类有SFSpeechRecognizer,SFSpeechAudioBufferRecognitionRequest,SFSpeechRecognitionTask以及AVAudioSession,AVAudioEngine等。其中AVFoundation框架汇总的AVAudioEngine主要负责语音写入,SFSpeechRecognizer负责语音识别,配合完成语音识别功能。iOS 15 App原创 2021-12-17 07:01:19 · 3212 阅读 · 0 评论 -
PickerView
渣渣博文一篇,自定义PickerView效果图:实现:#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@class MMPickerView;@protocol MMPickerViewDelegate <NSObject>@optional- (void)cancelBtnActionPickerView:(MMPickerView *)pickerView;- (void)doneBtnActionPicke原创 2021-11-22 11:09:33 · 1449 阅读 · 0 评论 -
WKWebView OC与JS交互
文章目录WKWebView OC与JS交互1. OC调用JS2. JS调用OC3. 总结WKWebView OC与JS交互整体上看原理还是挺简单的,即OC端向JS中注入JS脚本或者注入一个事件对象,生成一个时间handeler,当JS触发此事件时,handler处理事件的回调用,实现相互传值和事件交互的效果。1. OC调用JSOC调用JS方法主要是通过执行javaScript脚本来实现的。WKWebKit提供的主要方法是:- (void)evaluateJavaScript:(NSString *原创 2021-04-27 08:55:29 · 5429 阅读 · 0 评论 -
OC 基础数据类型转bytes
OC 基础数据类型转bytes基础数据类型与NSData互转基础数据类型与NSData互转data.bytes系统方法iOS 系统库提供了简便的API可以实现基础数据类型和NSData的转化,读data.bytes可以直接获取到。以int为例:// Int convert to NSDataint num = 10;NSData *data = [NSData dataWithBytes:&num length:sizeof(num)];const uint8_t *byte原创 2021-03-12 09:20:06 · 1575 阅读 · 0 评论 -
AppStore 提审时的“出口合规证明”处理
对于加密的管理,Apple不比之前严格了,一般选“否”也能通故审核。每次提交审核的时候都会让确认是否使用了Apple以的加密算法。在窗口提示了我们可以看到,可以在Xcdoe的info.plist文件中增加App Uses Non-Exempt Encryption,将值设置为NO。 <key>ITSAppUsesNonExemptEncryption</key> <false/>这样就不会每次在提交审核的时候都提示确认“出口合格证明信息”原创 2021-11-17 08:19:37 · 9746 阅读 · 0 评论 -
基于AF的HTTP
搬搬砖头而已!iOS 基于AF的HTTP请求类OKHTTPRequestManager.h//// OKHTTPRequestManager.h// LL//// Created by Morris_ on 2020/9/22.// Copyright © 2020 LL Technologies. All rights reserved.//#import <Foundation/Foundation.h>#ifndef okDispatch_queue_as原创 2021-11-03 15:02:58 · 212 阅读 · 0 评论 -
iOS开发和正式环境证书配置
本文适合初学iOS开发的下伙伴读,其他人直接跳过即可,老生常谈,没啥意思。》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开发和发布用了两套不同的证书,为了方便开发和发布,进行一次性配置,之后再不需要修改。假设电脑上已经安装了证书和描述文件。首先分别配置开发和正式环境下的Bundle Identifier 和 Provisioning Profile然后去Build Settings下面配置开发和生产环境下的 证书 和 Provisioning Profile之后看看Gener原创 2021-10-28 15:45:17 · 750 阅读 · 0 评论 -
iOS 15适配
写的有点晚了哈!升级iOS15之后,有没有发现你的App导航栏上的状态栏颜色变了呢?UITabbarTabbar的背景颜色值设置 if (@available(iOS 13.0, *)) { UITabBarAppearance * appearance = [[UITabBarAppearance alloc] init]; // 背景色 appearance.backgroundColor = [UIColor whiteColor]原创 2021-10-25 10:12:00 · 284 阅读 · 0 评论 -
OC中的copy和mutableCopy
在OC中,对对象的拷贝可分为深拷贝和浅拷贝。深拷贝,会生成新的指针和新的内存,新的指针指向新开辟的内存空间,并且会将原来的内存中的内容也拷贝过来。浅拷贝,会生成新的指针,但是不会开辟新的内存空间,也不会拷贝原来内存中的内容。新生成的指针会指向之前的内存地址。画个图来说明:OC中,对对象的拷贝需看改对象本身是否是可变的。对于可变对象的拷贝: NSMutableArray *muArr = [[NSMutableArray alloc] init]; [muArr addObjec原创 2021-09-10 12:10:15 · 408 阅读 · 0 评论 -
Xcode Executable Not Found
问题Xcode编译项目报Executable Not Found的错误。DetailsDetailsExecutable Not FoundDomain: DVTMachOErrorDomainCode: 5Recovery Suggestion: /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-dofplyfxahohsphaipnbzdggryec/Build/Products/Debug-iphonesimulator/xxx.a原创 2021-09-06 09:24:49 · 25035 阅读 · 13 评论 -
检查项目中的UIWebView
哎!15年的时候,就开始去UIWebView了,到了今天21年,被这个给坑了一把,上线审核被拒绝。从来上线都是很容易,只有这次最麻烦,被拒了两次,邮件回复里都是描述的同样的问题,使用了UIWebView。全局搜索并未找到UIWeb字眼,在Finder中查询也没找到,自以为就是没有使用。事实证明,还是大意了,用不专业的做法(搜索)来大概处理了一下,以为没有,其实不然。隐藏在SDK里面的被打包到framework里面的UIWebView,搜索是搜索不到的。这里有个帖子:iOS检查项目中是否存在废弃的U原创 2021-08-19 07:33:12 · 583 阅读 · 0 评论 -
building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
Xcode 12以及以上版本,使用模拟器编译,使用真机不会报错,或者使用真机编译会报错,使用模拟器不会报错。ld: in /Users/morris/Documents/work/svn/EM-iOS/WarehouseMap/WarehouseMap_2004/WarehouseMap/External/Captuvo/libCaptuvoSDK.a(Captuvo.o), building for iOS Simulator, but linking in object file built for原创 2021-08-12 09:55:03 · 2049 阅读 · 0 评论 -
Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817
Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817Xcode 12.5.1macOS Big Sur 11.4Apple M1这个问题出现在使用Xcode12.5 运行在M1芯片的模拟器iOS 14.4上。我发现复制功能出现了一长,一看报了这个错误。网上查了一下,已经有人遇到这问题了:https://developer.apple.com/forums/threa原创 2021-07-27 06:42:02 · 3287 阅读 · 0 评论 -
Xcode编译报错不提示
M1Xcode Version 12.5.1 (12E507)编译项目之后提示“Build Failed”,但是并不报“小红点”,不指示是哪个文件报错。不知道去哪里找报错文件了,????…Xocode 工具栏上有这个按钮选择之后点击某次编译,如果有错误会跳转到对应的错误文件。...原创 2021-07-14 15:03:16 · 1674 阅读 · 0 评论 -
building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
M1 Xcode项目编译报building for iOS Simulator, but linking in object file built for iOS, for architecture arm64Finder -> 应用程序 -> Xcode -> 显示简介 -> 勾选 “使用Rosetta打开”退出Xcode重启项目编译。如果项目中xib出现蓝线,需要清缓存,重新启动。...原创 2021-07-14 08:24:45 · 2136 阅读 · 0 评论 -
Unable to install “xxx“
Unable to install “xxx”Xcode: Could not inspect the application packagemacOS Version 11.4 (Build 20F71)Xcode 12.5.1 (18212) (Build 12E507)Xcode使用真机运行,提示 Unable to install "xxx",无法在真机上运行调试。编译不报错。Details的内容如下:DetailsUnable to install "XunfeiDemo".原创 2021-07-08 11:17:11 · 1392 阅读 · 0 评论 -
iOS侧滑功能三方开源库
文章目录ENSwiftSideMenu 从入门到放弃适用场景使用分析MMDrawerController概述使用分析SWRevealViewControllerENSwiftSideMenu 从入门到放弃三方库地址:https://github.com/Appolica/ENSwiftSideMenu适用场景大概看了下ENSwiftSideMenu的源码,作者写的代码还是挺简洁明了的。而且要实现的功能或者说要实现的效果也是很明确的。实现的效果就是在一个导航栏下,同时显示两个页面,一个menuVie原创 2021-06-21 14:25:15 · 559 阅读 · 2 评论 -
iOS 获取设备deviceType、MacAddress、UniqueId
#ifndef Foundation_h#define Foundation_h#import <Foundation/Foundation.h>extern NSString *deviceType();extern NSString *getMacAddress();extern NSString *UniqueId();#endif /* Foundation_h */#import <Foundation/Foundation.h>#import &原创 2021-05-27 16:53:50 · 448 阅读 · 0 评论 -
iOS开发学习之路
文章目录iOS开发学习之路Swift or Objective-CSwiftUI or UIKit学习iOS开发都需要学习哪些知识入门学习基础学习继续学习最后iOS开发学习之路最近有小伙伴问我iOS应该怎么学,其实我也不知道,下面是我个人的一些看法和观点。Swift or Objective-CSwift虽然是大势所趋,但是老的应用程序都还在使用Objective-C语言,如果是要学iOS开发,直接从Swift开始是一个不错的选择,如果你对Swift已经了解的差不多可以做项目的时候,建议对Obj原创 2021-04-30 11:03:34 · 307 阅读 · 0 评论 -
Xcode - VALID_ARCHS
背景使用模拟器编译时报如下错误:ld: in /Users/xxx/Documents/xx/svn/xxx/xxx/External/Captuvo/libCaptuvoSDK.a(Captuvo.o), building for iOS Simulator, but linking in object file built for iOS, for architecture arm64clang: error: linker command failed with exit code 1 (u原创 2021-04-21 09:26:26 · 5137 阅读 · 0 评论 -
iOS如何分析项目本地数据库文件
iOS App中使用的数据库文件最终会被打包在ipa包中的某个文件目录下。如果查看项目中生成的数据库文件呢?通过ipa包查看ipa 包,显示包内容,如果数据库文件被放在合适的位置的话直接可以找到。下载App Data文件查看这种方式需要设备连接Xcode进行查找’App Data’,下载App Data文件并显示包内容,在里面可以找到数据库文件。Xcode -> Window -> Device and Simulators -> 选中左侧设备 -> 选择App.原创 2021-04-14 15:22:04 · 687 阅读 · 0 评论 -
iOS 防止页面重复Push
iOS 防止页面重复Push前言项目中是否有遇到一个页面被重复Push两次的情况呢?这种情况是存在的,比如很短的时间内联系点击两次按钮,导致页面跳转两次的情况。应该怎么避免呢?解决方案解决这个问题的方案有很多种,这里提供一种全局的解决方案。通过复写NavigationController的pushViewController:animate: 来解决。在初始化的NavigationController中复写以下方法,// Overwrite the function and preventing原创 2021-03-02 07:25:59 · 1252 阅读 · 0 评论 -
The file “xxx” couldn’t be opened because you don’t have permission to view it. You don’t have permi
问题Xcode 使用真机编译不报错,运行报如下错误:The file “xxx” couldn’t be opened because you don’t have permission to view it. You don’t have permission.To view or change permissions, select the item in the Finder and choose File > Get Info.解决TARGET -> Building Set原创 2021-02-24 14:55:06 · 1186 阅读 · 0 评论 -
ASI ‘CFNetwork SSLHandshake failed (-9824)‘
文章目录ASI 'CFNetwork SSLHandshake failed (-9824)'问题解决思考参考ASI ‘CFNetwork SSLHandshake failed (-9824)’10年的老项目,网络库使用是ASIHTTPRequest,未做证书校验。设置了[self.myHttpRequest setValidatesSecureCertificate:NO]之后发现网络问题。问题程序报 CFNetwork SSLHandshake failed (-9824) 这样的错误,网络请原创 2021-02-02 08:48:02 · 959 阅读 · 0 评论 -
decimals数据格式化
格式化数据,以便移动端UI显示。无小数部分,则保留整数;有小数部分保留两位小数+ (NSString *)formatFloat:(float)num{ if (fmodf(num, 1) == 0) { return [NSString stringWithFormat:@"%.0f",num]; } else if (fmodf(num * 10, 1) == 0) { return [NSString stringWithForma.原创 2020-12-29 10:23:33 · 1905 阅读 · 0 评论 -
WKWebView设置请求头HTTPHeaderField
WKWebView HTTPHeaderFieldWKWebView的请求头添加字段。系统的NSMutableHTTPURLRequest类提供了获取HTTP请求的请求头(HTTPHeader)和设置/添加HTTP请求的请求头的API。@property (nullable, copy) NSDictionary<NSString *, NSString *> *allHTTPHeaderFields;/*! @method setValue:forHTTPHeaderF原创 2020-12-28 14:54:27 · 4353 阅读 · 1 评论 -
Error Domain=WebKitErrorDomain Code=102 “Frame load interrupted“
WKWebView报错:Error Domain=WebKitErrorDomain Code=102 “Frame load interrupted”。问题WKWebView总是偶尔会报出 Code=102 “Frame load interrupted” 这样的错误回调。Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo={_WKRecoveryAttempterErrorKey=<WKRel.原创 2020-12-23 08:16:18 · 4898 阅读 · 2 评论