240 发简信
IP属地:浙江
  • 120
    【iOS开发UI篇】绘制弧形文字

    本文介绍了使用苹果提供的CoreText框架绘制出弧形效果文字的方法 CoreText是由苹果官方提供的文本引擎,它提供了多种控制文字布局的方式,通过使用CoreText框架...

  • NSMutableDictionary *orderDic = [self.chargeManager getLearnPointOrderWithApplicationUsername:transaction.payment.applicationUsername].mutableCopy;

    这个 transaction.payment.applicationUsername 会有取不到的情况吗

    苹果内购流程及后台配置

    第一部分:在Apple后台添加一个内购产品 1、登录appStoreConnect,如下图所示,添加一个商品 IAP类型类型主要有4种: 1、Consumable produ...

  • 不使用这个svgkit 在iOS中能展示svg的图片吗

    iOS SVG及相关使用

    近日,发现安卓同学在项目中使用的都是SVG(矢量图)的图片。 那么,什么是svg呢?svg在放大或者缩小的情况下,图像的图形质量不会有所损失,而且要比png,jpeg小很多。...

  • 导航栏高度 ipad上是44吗?

    最全最准确获取iOS 状态栏、导航栏、TabBar高度

    前言 最近在iPhone 12 系列机型上开发项目时,发现使用项目提供的获取状态栏、导航栏高度方法获取到的高度是错误的,随后跟踪排查最终解决这个问题,所以自己想简单的总结一下...

  • 1.dispatch_semaphore_create:创建一个Semaphore并初始化信号的总量
    2.dispatch_semaphore_signal:发送一个信号,让信号总量加1
    3.dispatch_semaphore_wait:可以使总信号量减1,当信号总量为0时就会一直等待(阻塞所在线程),否则就可以正常执行。

    //创建初始信号量
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    //信号量+1
    dispatch_semaphore_signal(sema);
    //阻塞主线程,等待信号量不为0
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

    AFN同步请求

    项目需求:在 Block 中先发送网络请求,得到结果后再将请求结果返回 解决思路:用信号量是比较理想的解决方案,但由于dispatch_semaphore_wait(sema...

  • id ret;
    ret = [self performSelector:@selector(ldd_test:) withObject:@""];

    - (void)ldd_test:(NSString *)parm {
    NSLog(@"**%@**",parm);
    }

    记录使用performSelector产生的bug和调试过程

    说说NSObject的 performSelector 系列函数 记录调试这个bug的过程 说说遇到的bug      说之前先说说遇到的bug,公司项目,Target最低终...

  • 为什么会崩溃呢,和调用方法是否有返回值有关,以前也知道performSelector编译器不会对对象,方法,进行检验,会有内存泄露的可能产生,performSelector会把编译时做的事情放到了运行时期,点击这里去看一些performSelector的详细介绍,因为不知道即将调用的selector是否有返回值,只有到了运行期才去检测,调用了返回值为Void的一些函数,相当于直接是 id obj = void,当然是OC语法不允许的,直接崩溃是必然的。

    id ret;
    ret = [self performSelector:@selector(test:) withObject:@""]; 那这么写 为什么不崩溃呢 这样不也是 id obj = void吗

    记录使用performSelector产生的bug和调试过程

    说说NSObject的 performSelector 系列函数 记录调试这个bug的过程 说说遇到的bug      说之前先说说遇到的bug,公司项目,Target最低终...

  • 当执行到ret=action(JavascriptInterfaceObject,sel,arg);语句时,如果原生的函数返回nil,这样就变为ret = nil;这就是奔溃的原因

    一个id类型的ret = nil没啥问题啊

    dsBridge的调用原生函数返回nil的崩溃问题

    1.出错原因: dsBridge调用原生方法出现闪退bug,有的是只在release模式下崩溃等问题。dsBridge出错代码如下: 当执行到ret=action(Javas...

  • - (void)test:(NSString *)parm {
    NSLog(@"**%@**",parm);
    }
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    id ret;
    id(*action)(id,SEL,id) = (id(*)(id,SEL,id))objc_msgSend;
    ret = action(self,@selector(test:),@"");
    }

    这么写也不崩溃啊

    dsBridge的调用原生函数返回nil的崩溃问题

    1.出错原因: dsBridge调用原生方法出现闪退bug,有的是只在release模式下崩溃等问题。dsBridge出错代码如下: 当执行到ret=action(Javas...

  • 整理一下布局吧...

  • 请问[NSUserDefaults standardUserDefaults] 添加本地存储的作用是什么

  • 添加了[object setCflag:cflag];也不能解决问题😂 调起的还是好友列表

  • 低音量与AVAudioSessionCategoryPlayAndRecord相结合

    当设置:[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord er...

  • 自定义cell批量删除写了吗? 求大神给力.

  • 你发现没,仅在Release里添加的宏是无效的,只有Debug里添加的宏有效

  • 这么写上架商店 有无问题?

    iOS:添加状态栏响应事件

    背景: 接触到iOS 逆天的注入式框架 FLEX[https://github.com/Flipboard/FLEX],有诸多功能,包括查看控件的坐标和属性,查看任何一个对象...

  • iOS 13上获取statusBar点击事件只能使用另一种方法。通过hook私有方法来获取点击事件
    这么搞上架有问题吗

    iOS 状态栏添加点击事件

    第一步:在AppDelegate.m 中添加以下代码 第二步:在要触发点击事件的控制器中添加以下代码 注意:旧方法在iOS 13中已经废弃,因为iOS 13中采用多windo...

个人介绍
只要心中有路 何惧天涯海角