IOS
一品大帅
这个作者很懒,什么都没留下…
展开
-
iOS适配Unity-2019
Xcode工程适配Unity 2019+原创 2022-11-26 21:24:31 · 2165 阅读 · 0 评论 -
xcode 打包报错:_isPlatformVersionAtLeast
前言xcode打包时报错,错误描述为:Undefined symbol:_isPlatformVersionAtLeast解决方式把xcode升级为13,即可。原创 2019-10-22 17:01:42 · 3074 阅读 · 0 评论 -
Swift 写入Excel表格(libxlsxwriter)方式
前言之前写过一种写入Excel表格的方式(https://blog.csdn.net/qin_shi/article/details/82772668 ),是通过LibXL库实现的,这个是官方的库,需要购买,否则生成的数据里会被追加脏数据。基于这种情况,另外找了一个库libxlsxwriter,这个是开源库,可以实现对Excel的基本操作。引入库流程引入libxlsxwriter使用C...原创 2018-09-30 09:34:10 · 3353 阅读 · 0 评论 -
崩溃:Property follows Cocoa naming convention for returning 'owned' objects
定义属性时,报了这个错误,如下:错误信息Property follows Cocoa naming convention for returning 'owned' objects报错位置@interface ViewController () @property(copy,nonatomic)NSMutableString *copyMutalbesString;@end...原创 2019-03-21 18:22:29 · 1013 阅读 · 0 评论 -
利用数组实现简化的List
前言复习下数组的使用方式,仿照List用oc实现下数组的增删改查功能初始化时给定数组的容量插入数据删除数据根据下标返回数据代码声明头文件 头文件中包含了6个对象方法,如下:initWithCapacity用于初始化数组容量find根据下标查找数据remove根据下标删除数据insert根据下标插入数据add尾部追加数据...原创 2019-03-21 18:21:27 · 269 阅读 · 0 评论 -
Error: IOS iPhone has denied the launch request(Xcode10.1)
前言环境:xcode 10.1, iphone:12.1.4开发运行中,报了iPhone has denied the launch request错误,可以从以下两种方式进行尝试解决。修改Executable打开Product -> Scheme -> Edit Scheme然后选择Executable的选项为:Ask on launch修改钥匙串双击下钥匙串,修...原创 2019-03-25 12:02:00 · 426 阅读 · 0 评论 -
oc中copy、strong、weak、assign解析
NSMutableString“_”方式调用赋值 NSMutableString *mOriginMutableString = [[NSMutableString alloc] initWithString: @"原始数据"]; _mCopyMutableString = mOriginMutableString; _mStrongMutableString = mOri...原创 2019-03-22 17:08:10 · 906 阅读 · 0 评论 -
Unity和IOS相互通信方式、生成unitypage包
前言本内容讲解IOS、Unity项目通信的方式,以及IOS如何生成一个unitypager包,供Unity安装使用。Demo: https://github.com/LSnumber1/UnityAndIOSMessageDemoUnity调用IOS方法创建一个Xcode工程依次点击File->New->Project选择 Cocoa Touch Static Libr...原创 2019-03-31 12:04:43 · 2901 阅读 · 1 评论 -
python 自动打 .framework/.a 文件,合并真机、模拟器包
前言因项目中需要频繁打SDK包(.a / .framwork),所以考虑用python写一个脚本,自动化打包,并且把生成真机包、模拟器包进行合并。实现方式import osimport shutil# framework 的名字FrameworkName = 'FtAdsPlatform'# 项目路径Build_Path = '/Users/Documents/IOSSDKPr...原创 2019-05-05 18:02:57 · 214 阅读 · 0 评论 -
Xcode 修改Copyright的组织信息
在xcode中新建文件时,会自动写上Organization信息,修改Organization的方式如下:选择工程名称选择TARGETS在最右边窗口,选择Organization,并输入内容如下图所示:效果:...原创 2019-07-03 09:21:34 · 2240 阅读 · 1 评论 -
IOS项目,以workspace的形式,管理多个项目
做SDK开发时,需要把SDK的工程和测试工程放在一个workspace下,这边可以方便对SDK的包进行断点测试,以下为对现有的两个工程放入同一个workspace的流程。新建项目选择 “Workspace”如果之前打开了要加入workSpace的项目, 把其关闭掉。打开新建的workspace,选择“File” -> “Add Files to workspace名称”,找到要加入...原创 2019-07-09 09:44:46 · 876 阅读 · 0 评论 -
IOS OC IPA内购流程
IOS 内购分为四种商品类型:消耗品项目非消耗品项目自动续期订阅非续期订阅基本实现流程添加支付监听[[SKPaymentQueue defaultQueue] addTransactionObserver:self];2.删除支付监听在界面销毁处,添加删除支付监听,或者在 deallo方法处销毁 [[SKPaymentQueue defaultQueue] remov...原创 2019-07-31 14:03:10 · 1331 阅读 · 0 评论 -
OC 反射实现(runtime)集合Admob案例
前言因需要做一个广告的聚合包,聚合包里包含了各个广告平台的SDK,当需要时,把SDK引入,不需要时把SDK删除即可,不需要动逻辑代码。比如:当需要接入admob时,只需要把admob的库引入项目中即可,不需要另外写代码,当不用admob时,把admob的库删除,此时,也不用修改代码。因此,实现中,就不能直接用admob的对象,需要通过反射去实现。Java可以用反射做,object-c、swi...原创 2019-08-10 15:08:55 · 229 阅读 · 0 评论 -
Object-C替换自定义占位符"${}"
前言oc字符串替换一般使用系统提供的%@、%d、%u等,但是有的时候根据需求我们需要自定义占位符,如下:我们上报服务器数据时,需要向Facebook的渠道做一个转发,eventName是转发的事件名称,其中${level}是需要解析本地数据level,如level = 10,则eventName是为trackleveldone_10. //此数据是服务器下发给SDK的,告诉SDK转发的渠道、...原创 2019-08-16 09:46:45 · 502 阅读 · 0 评论 -
oc打静态库(.a)供 Unity调用流程
选择新建Cocoa Touch Static Library创建WordSliceIOS.h 文件#import <Foundation/Foundation.h>@interface WordSliceIOS : NSObject-(void)playVibrate;@end创建WordSliceIOS.m文件#import "WordSliceIOS.h...原创 2018-09-20 13:56:44 · 1888 阅读 · 0 评论 -
Swift 写入Excel表格
需求项目中需要把数据写入Excel表格中。引入流程下载Excel的开发包 http://www.libxl.com/download.html把下载的LibXL.framework文件放入xcode工程中修改xcode的配置信息BitCode为No,Other Linker Flages 追加-lstdc++桥接文件引入头文件#import <LibXL/libxl....原创 2018-09-19 15:18:17 · 2540 阅读 · 0 评论 -
OC 调用 Swift 方法
1.新建Swift文件之前做以下设置 2.创建Swift文件后,会提示创建桥接文件,点击创建3.Swift 类import Foundationclass RealmManager: NSObject { override init() { super.init() } @objc func getConins() -> Str...原创 2018-09-06 11:47:34 · 7032 阅读 · 0 评论 -
Swift 防头条频道管理(UICollectionView,拖拽排序)
前言初步实现了一个防今日头条的频道管理,能够进行拖拽排序,效果图如下分析主要使用UICollectionView实现,利用其原生的API实现拖拽效果。核心分为以下步骤: - 得到获取焦点的Cell - 处理移动中的事件 - 移动结束后,处理放下Cell问题创建UICollectionView之前先创建个UICollectionViewFlowLayout,我们定...原创 2018-05-10 09:56:53 · 1811 阅读 · 0 评论 -
Swift 启动页动画(CAKeyframeAnimation)
前言项目开发中有个需求,需要给启动页加一个正在加载的动画,先上一个效果图。 上图最底层浅色圆圈,我们定义为浅A,转动的为深B,可以看到,深B是围绕着浅A圆圈的边缘旋转的。 下面对实现思想进行分析。剖析核心的难点是如何让深B紧凑沿着浅A的圆边做轨迹运动,为此,我们需要确定一个圆轨迹C,然后让深B在轨迹C上做圆周运动红色圆圈是轨迹C,它的圆点就是浅A的圆点,然后就是确定半...原创 2018-05-05 12:09:02 · 1273 阅读 · 0 评论 -
Swift 系统分享视频(UIActivityViewController)
UIActivityViewController介绍系统分享功能使用UIActivityViewController实现,此类能够实现把要分享的内容分享到社交媒体、短信、电子邮件等,分享的内容可以是文本、图片、链接、视频等。初始化UIActivityViewController(activityItems: <#T##[Any]#>, applicationActivities: <#T##[UIA原创 2018-04-28 11:14:04 · 2594 阅读 · 0 评论 -
IOS 集合的Fabric 看不了Crashlytics解决方式
场景IOS集合的Fabric,发现统计事件可以上报,但是崩溃信息无法查看,经查询,发现是在Archive后,没有选择上传dSYMs包。解决方式一在Xcode中Archive后,Fabric会弹出一个框,选择Distribute即可,如图所示。解决方式二如果Archive后,忘记上传dSYMs包了,可以在fabric网站上上传dSYMs包。打开Xcode中的Organizer,在Organizer中原创 2018-04-28 17:53:30 · 1422 阅读 · 0 评论 -
Swift UICollectionView 实现,自动滚动、一屏横向显示3个view
前言实现UICollectionView的自动滚动,以及一屏下,中间显示一个view,两边显示半个view的效果, 如图:自动滚动实现逻辑自动滚动是使用Timer实现,每个一段时间让UICollectionView自动滚动下即可。定义一个Timer//自动滚动计时器var autoScrollTimer:Timer?定义一个下标,记录UICollectio...原创 2018-05-21 10:41:06 · 4446 阅读 · 0 评论 -
Swift UIView获取坐标
获取Sizeview.frame.sizewidthview.frame.size.widthheightview.frame.size.heightxself.view.frame.origin.xyself.view.frame.origin.yleftself.view.frame.origin.xright...原创 2018-06-22 15:52:37 · 4610 阅读 · 0 评论 -
UIScrollView 手势冲突,子View无法获取touches事件解决方法
问题UIScrollView 下的子View,手势滑动中,无法获取touchesBegan等事件。解决方式自定义MyUIScrollView,继承自UIScrollView,复写touchesBegan等事件,在此事件中把获取的滑动事件等传递下去。class MyUIScrollView: UIScrollView { var callback: TouchesCal...原创 2018-07-06 16:00:06 · 1866 阅读 · 0 评论 -
UITextView 设置同一段文字,多个文字颜色
利用NSMutableAttributedString实现预览图如下 创建 NSAttributedString let subjectString1 = NSAttributedString(string: "CLUD: ", attributes: [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttrib...原创 2018-07-20 15:03:34 · 1583 阅读 · 0 评论 -
Fabric 创建分组后,导致数据无法上报
问题项目换到Fabric另外一个分组后,导致数据无法上报。解决方式关闭XCode、模拟器从设备中删除App,并重启执行 rm -rf ~/Library/Developer/Xcode/DerivedData打开项目,并清理项目(⌘+Option+Shift+K)修改Fabric相关ID编译项目(⌘B)运行项目...原创 2018-07-27 12:03:15 · 315 阅读 · 0 评论 -
Swift 4 reduce函数
概述用于做序列元素的累加,如数组元素的累加。func reduce&lt;Result&gt;(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -&gt; Result) rethrows -&gt; Result initialResult为初始化的值,也是闭包Result第一次运行的值...原创 2018-09-04 10:04:38 · 7584 阅读 · 0 评论 -
Swift 计算两个日期的相隔多少天
概述给定两个日期,计算两个日期相隔多少天。列子主要利用dateComponents实现NSCalendar.current.dateComponents(components:Set<Calendar.Component>, from: <Date>, to: <Date>) let dateFormatter = Date...原创 2018-09-04 16:34:33 · 3729 阅读 · 0 评论 -
Swift 打印Realm数据库的秘钥方法
Realm数据的秘钥是Data类型encryptionKey?.toHexString()encryptionKey为秘钥,调用toHexString方法即可。原创 2018-09-05 15:45:30 · 376 阅读 · 0 评论 -
Unity和IOS互调方法
说明一下内容是IOS客户端需要做的操作,不涉及Unity的操作。Unity调用IOS方法1.RegisterMonoModules.h 文件里填写相应的方法void getLevelAndCoin(); 如果需要调用传递返回值的方法,也需要写成void类型 RegisterMonoModules.mm 不需要写对一个的方法2.UnityAppControll...原创 2018-09-06 11:02:17 · 1962 阅读 · 0 评论 -
UIButton 背景色渐变动画
项目有个需求需要UIButton上的背景色是渐变动画的效果,如下。 实现原理 CAGradientLayer 用于实现渐变效果,CABasicAnimation用于对Layer做动画 源码:https://github.com/LSnumber1/ButtonColorGradientAnimation思路看gif图我们发现动画是从右到左,颜色一直渐变向左滑...原创 2018-04-17 11:58:12 · 2851 阅读 · 0 评论