iOS
iOS综合技术
刘小哈哈哈
这个作者很懒,什么都没留下…
展开
-
记录一个切换视频横竖屏导致tableView刷新的问题
如图所示,该页面是一个tableView , 整个播放画面是一个然而切换横竖屏的时候,播放画面不见了,通过调试发现播放画面的承载视图移到其他非当前cell上面了,进而发现是切换横竖屏的时候走了cellForrow 方法,导致重用出了问题。然后问题就是为什么会执行cellForrow方法后来发现是返回的高度有问题这段代码的问题就是,在横竖屏的时候,返回的高度差别是很大的,一屏展示的cell数量就不同了,从而导致执行cellForrow 方法,原创 2022-11-05 20:26:33 · 487 阅读 · 0 评论 -
iOS 一种简单的归档持久化方法
要遵循 NSCoding 协议实现 encodeWithCoder 和 initWithCoder方法。原创 2022-10-29 16:09:40 · 193 阅读 · 0 评论 -
pod init 报错 can‘t modify frozen String (FrozenError) [Xcodeproj] Unknown object version (56).
【代码】pod init 报错 can't modify frozen String (FrozenError) [Xcodeproj] Unknown object version (56).原创 2022-10-15 13:52:49 · 2547 阅读 · 1 评论 -
iOS autoresizingMask 的原理及其使用
如果某个视图设置为则,该视图相对于父视图的的边距是不变的,可以变化长度和高度。原创 2022-09-30 16:40:24 · 304 阅读 · 0 评论 -
wrong number of arguments (given 1, expected 0)
执行 brew install jenkins-lts的时候报错。brew install jenkins-lts 就可以了。执行 brew doctor。根据提示执行命令即可。原创 2022-09-22 18:48:40 · 1373 阅读 · 0 评论 -
enumerateObjectsUsingBlock 双层遍历问题
1 我们 使用 enumerateObjectsUsingBlock 进行双层遍历循环的时候,如果执行*stop = YES,虽然 内层和外层的*stop 是一样的,但是按照就近原则,我们暂停的是内层循环。原创 2022-09-14 21:32:01 · 252 阅读 · 0 评论 -
iOS 自定义抖音效果进度条实现拖拽修改播放进度
在整个进度条视图上添加拖拽手势,根据手势所在的位置参数转换成宽度比例,实现修改播放进度这里关键用到了手势的这个接口 *- (CGPoint)locationInView:(nullable UIView)view; **计算出手势的进度 和占的宽度比例完整代码这里为了方便,将两个类放到同一个文件当.h.m.........原创 2022-07-08 18:28:17 · 2068 阅读 · 2 评论 -
记一次适配器模式在iOS开发中的实际应用
需求背景这是一次项目优化需求,目前工程中的关注按钮应用场景比较多,如:关注用户,关注话题,关注课程,关注标签,关注评论,关注频道, 等等这些关注功能都是通过同一个按钮来实现的,由于不同的关注类型使用的是不同类型的对象模型,导致 关注按钮中的判断逻辑越来越多,UI也越来越复杂,造成了添加新业务就非常难以维护,整个代码越来越臃肿也不可维护可以看一下重构之前的代码再看下关注成功之后发送通知的地方,同样的多种类型的判断,对后续的开发很是不友好适配器模式原理:将一个类的接口转换成客户希望的另一原创 2022-04-19 17:10:36 · 271 阅读 · 0 评论 -
UTTypeCreatePreferredIdentifierForTag
Implicit declaration of function ‘UTTypeCreatePreferredIdentifierForTag’ is invalid in C99Use of undeclared identifier ‘_mimeType’Use of undeclared identifier ‘kUTTagClassMIMEType’; did you mean ‘UTTagClassMIMEType’?Replace ‘kUTTagClassMIMEType’ with ‘U原创 2022-02-07 17:05:39 · 1077 阅读 · 0 评论 -
iOS实现拖动视图移动手势
translationInView 获取的是和上一帧的手势位置的差值,不是和初始位置的手势位置的差值,可以简单的理解为是速度,不是距离如图:原创 2022-01-18 10:53:22 · 1629 阅读 · 0 评论 -
iOS 设置tabbar 未选中文案颜色不起作用
问题代码 //正常 NSMutableDictionary *normalDict = [NSMutableDictionary dictionary]; normalDict[NSFontAttributeName] = appFont(10*PLUS_SCALE, NO); normalDict[NSForegroundColorAttributeName] = [[TPSkinManager shareManager]colorAutoMatch:TPSkinMapK原创 2022-01-11 16:52:37 · 1360 阅读 · 0 评论 -
iOS 修改URL的常见操作
NSString *updateQuery(NSString *url, NSString *key, NSString *value){ if (isBlankString(url)) { return @""; } NSURLComponents *components = [NSURLComponents componentsWithString:url]; NSMutableArray *tmpQueryItems = [NSMutableArray原创 2022-01-07 18:34:43 · 1541 阅读 · 0 评论 -
: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)[r retain]: message sent to deallocated instance
从一个页面退出的时候 遇到如图所示一个崩溃遇到这种 EXC_BAD_ACCESS崩溃,首先想到野指针异常然后 使用僵尸断点调试如图选中zombie objects ,开启僵尸断点调试然后进行推出操作然后提示-[NotiViewController retain]: message sent to deallocated instance,着说明向已经释放的对象发送了消息然后又从左侧的调用栈中发现0x00007fff257275b7 in KVO_IS_RETAINING_ALL_原创 2021-09-25 22:52:49 · 996 阅读 · 0 评论 -
iOS 修改方法外部传入的基本数据类型
- getContentSizeHeight:(CGFloat *)contentSizeHeight { ///这里要添加判断是否为空 if (contentSizeWidth) { *contentSizeWidth = xxx; }调用 CGFloat height = 0 [self contentSizeHeight:&height];原创 2021-10-15 14:07:52 · 129 阅读 · 0 评论 -
OC通过指针在方法内部修改外部传入的参数
定义修改传入参数的方法调用+ (void)trackClickAskItemWithModel:(listContObjectVO *)model index:(NSInteger)index{ NSString *cardType; [self cardTypeWithModel:model askCardType:&cardType newsCardType:nil]; NSDictiona..原创 2021-06-16 10:57:32 · 667 阅读 · 0 评论 -
duplicate symbol ‘_kSegmentSliderView‘ in: /Users/macbook/Library/Developer/Xcode/DerivedData/Ai
报错内容原因是常量重复了原创 2021-01-22 16:47:04 · 283 阅读 · 0 评论 -
xcode 修改文件路径
尽量不要在工程中直接拖动文件,现选中要移动的文件,复制,将原来的文件删除,在将新复制的文件添加到想要移动到的位置。原创 2018-04-24 15:12:59 · 1512 阅读 · 0 评论 -
has been modified since the precompiled header was built: ...size changed 报错问题
file '/Users/macbook/Desktop/未命名文件夹/ios/VOVA/VOVA/Macros/AppTrackerEventName.h' has been modified since the precompiled header '/Users/macbook/Library/Developer/Xcode/DerivedData/VOVA-batlqzyccoixxaasbwkqchjormhf/Build/Intermediates.noindex/PrecompiledH...原创 2020-12-14 13:40:34 · 607 阅读 · 0 评论 -
iOS支持universal link
首先要在 signing & capabiliities 中的 associatedd domain 中添加 域名 如图然后在entitlements文件中添加支持原创 2020-12-30 18:01:53 · 81 阅读 · 0 评论 -
iOS 配置bundleid
这个地方和general中的identity中的bundle identifer 是联动的原创 2020-12-30 17:39:57 · 740 阅读 · 0 评论 -
xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer directory ‘/Library/Deve
[!] Oh no, an error occurred.Search for existing GitHub issues similar to yours:https://github.com/CocoaPods/CocoaPods/search?q=undefined+method+%60split%27+for+nil%3ANilClass&type=IssuesIf none exists, create a ticket, with the template di..原创 2021-01-18 11:16:31 · 4164 阅读 · 0 评论 -
xcrun: error: unable to find utility “PackageApplication“, not a developer tool or in PATH
xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH后面根据对比发现新版的Xcode少了这个PackageApplication(转注:PackageApplication在前几个版本已被标识为废弃,在8.3版本彻底移除了)先去找个旧版的Xcode里面copy一份过来放到下面这个目录:/Applications/Xcode.app/Contents/Develope原创 2020-11-05 10:12:39 · 342 阅读 · 0 评论 -
iOS 工程配置bundle identifier
首先,明确一点,工程面板中可以看到bundle identifer 的地方有四个,分别是info.plist, general, signing& capabilities 还有 build setttings,但是,info.plist中的值是读取build settings中配置的值,自身并不起到配置作用,工程中能够起到配置作用的地方有三个,就是general, signing & capabilities 和 build settings, 后来又发现,修改signing.原创 2021-01-13 23:30:50 · 5962 阅读 · 0 评论 -
Xcode po 不出内容
将打印台设置为all output原创 2021-09-26 19:26:39 · 960 阅读 · 0 评论 -
Xcode配置开发分组development team
如图,在build settings 中的development team 中配置虽然signing & capabilities中也能看到,但是是不能修改的原创 2021-01-13 23:49:23 · 3346 阅读 · 0 评论 -
‘Your app is missing support for the following URL schemes: com.googleusercontent.apps.315347888481
在info.plist中的url types 添加url scheme原创 2020-12-31 17:51:07 · 1560 阅读 · 0 评论 -
Build input file cannot be found:
发现是文件没有添加到build phase去掉这个灰色的,然后重新添加一下就可以了原创 2021-01-20 22:51:55 · 1621 阅读 · 0 评论 -
Xcode 工程中配置开发分组
如图,在build setting 中的signing 中有个 development team 选项原创 2021-01-06 09:39:06 · 256 阅读 · 0 评论 -
Xcode 引用文件路径错误的问题
首先,我想要做的是将这两个问价移动到指定文件夹中,这时候,直接在工程目录中拖动即可,在工程目录中拖动过之后,发现真实的文件已经移动到了响应的文件夹中这里示意一种错误的操作,就是从文件夹中直接往工程目录里面拖,这种操作会导致文件路径和工程路径不一致如图所示,不要进行这种从文件夹中直接往工程目录中移动文件的操作...原创 2020-12-05 10:12:24 · 658 阅读 · 0 评论 -
failed to read asset tags
failed to read asset tags: The command `(cd /Users/macbook/Desktop/test && /Applications/Xcode.app/Contents/Developer/usr/bin/actool --print-asset-tag-combinations --output-format xml1 /Users/macbook/Desktop/test/TEXT/Assets.xcassets)` terminated w原创 2021-01-16 17:07:43 · 1855 阅读 · 0 评论 -
error: codesign_allocate: can‘t write output file: /Users/macbook/Library/Developer/Xcode/DerivedDat
很明显的,后面的括号里面提示空间不足了,清理下空间就可以了原创 2020-12-24 11:05:54 · 1677 阅读 · 0 评论 -
iOS开发pod 私有库的子库
首先,我们添加新的子库文件夹的时候,是不能直接往pod 库工程的development pods功能目录中直接添加文件夹的,如图,不能直接将文件拖入框内的工程目录正确的做法是,找到pod库的classes文件夹将自己需要添加的文件夹添加到这个classes文件夹中里面包括自己的库文件然后在.podspec文件中添加子库的配置信息如图包括相对路径,子库的依赖库然后我们cd到pod库的示例工程下,pod install 之后,发现子库已经添加到pod 库.原创 2021-01-22 10:10:47 · 710 阅读 · 0 评论 -
[!] Unable to read the license file `LICENSE` for the spec
将pod 文件夹中的Manifest.lock文件删除, 再重新pod原创 2020-09-04 14:19:54 · 5039 阅读 · 0 评论 -
-bash: /usr/local/bin/pod: bad interpreter: No such
系统设计之后再使用cocoapods时候报这样的错误,觉得是旧版本cocoapod不能使用了,重新安装pod1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"//这一步等的时间比较长,要有耐心2 brew install ruby3 sudo gem install ...原创 2018-05-03 18:23:20 · 1298 阅读 · 0 评论 -
[!] Error installing Fabric. /usr/bin/curl -f -L -o /var/folders
echo insecure >> ~/.curlrc然后 pod install原创 2018-09-29 10:40:19 · 3986 阅读 · 0 评论 -
cocoa pod 相关error: RPC failed; curl 18 transfer closed with outstanding read data remaining
$sudo gem install -n /usr/local/bin cocoapods命令后直接执行$Gitclone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master 该过程作用与 pod setup作用相同原创 2019-06-08 18:49:47 · 547 阅读 · 0 评论 -
记录一次cocoapod私有库更新
注意,是更新升级,默认本地已经添加过私有库管理,并已经和git仓库建立了链接,版本.podspec文件仓库,库仓库都已经建立的基础上修改完库代码,并且修改完.podspec文件之后只记录修改完代码之后,的命令行Last login: Sat Jun 8 18:24:04 on ttys007AppledeMacBook-Pro:~ apple$ cd /Users/apple/D...原创 2019-06-08 20:10:00 · 1110 阅读 · 0 评论 -
[!] Unable to read the license file `LICENSE` for the spec `Realm (3.14.2)`
将pod文件夹中的manifest文件删除之后再重新pod install就可以了原创 2020-08-25 11:58:56 · 2251 阅读 · 0 评论 -
iOS pod 安装的三方库版本号都是pod.lock 中记录的版本号
当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的三方库,这就有可能造成同一个团队使用的依赖库版本不一致...原创 2021-11-04 12:21:43 · 680 阅读 · 0 评论 -
更新cocoa pods
更新到最新版本``sudo gem install -n /usr/local/bin cocoapods --pre //安装最新版本原创 2021-10-09 16:02:40 · 145 阅读 · 0 评论