- 博客(113)
- 资源 (1)
- 收藏
- 关注

原创 iOS针对SRWebSocket的再次封装,已制作cocoapod库
本库是对SRWebSocket的再次封装, 经过一番折腾, 已经制作了cocoapod库, 可以直接执行 pod install pod 'NYLSRWebSocket', '~> 0.0.1'封装包括断线重连: 断开后在网络可用的情况下重连5次, 5次失败利用定时器继续重连;具体使用连接 // 连接 [[NYLWebSocketManager shareManager...
2019-08-20 11:10:34
956
2

原创 iOS消息转发,拯救你的app,防止崩溃
iOS消息转发在OC中是通过 [person eat]调用方法的。 他的底层实现是objc_msgSend(void /* id , self, SEL op, ... */ )。objc_msgSend需要动态查找自己要调用哪个方法, 会根据@selector的名字动态查找对应的方法。我们利用[person eat]进行举例, 列出方法查找的过程在person对象的缓存方法列表中(cl...
2019-08-09 15:05:01
685
原创 flutterInAppWebview 拦截微信h5支付UNKNOWN_URL_SCHEME
flutter webview拦截微信h5支付时, 提示err:UNKNOWN_URL_SCHEME, 只有在安卓11及以上才会出现, 应该是安卓11的安全需要。在queries标签中新增安卓和微信的包名, 重新打包即可正常调用。
2023-04-20 14:31:35
1322
1
原创 教你一步一步开发iOS私有SDK 到并上传到cocoapods
1、 需求我们要提供一个iOS 私有 SDK, 对方可以通过cocoapods安装, 并且只能看到头文件2、大致流程使用Xcode创建一个framework工程, 在里面编写你需要提供的功能创建podspec文件, 依赖这个framework, 然后上传到Cocoapods.3、具体流程如果我们单独创建一个framework工程, 如果有需求修改每次都要导出framwork在demo工程中调试, 这就很麻烦,所以今天创建一个framework+demo的混合工程, 在一个工程中包含frame
2022-03-22 17:00:42
4479
原创 antd Tab切换后子组件重复渲染
antd Tab切换后子组件重复渲染当切换到历史订单的时候, MyComponent被渲染了两次, 内部的componentDidMount被执行了两次, 原因是TabPane下面的组件创建后被保留在dom树中, 切换的时候会再次创建 render() { return <Tabs defaultActiveKey="1" onChange={this.tabsOnChange}> <TabPane tab="待处理订单" key="1"&g
2021-11-23 11:49:23
3661
原创 Flutter系列 --- Flutter与原生进行通信交互
Flutter系列 — Flutter与原生进行通信flutter无法直接调用系统相机、麦克风、定位、手机版本信息等,此时就需要与原生方法进行交互了。需求目前我们已经有了一个flutter项目(工程名称flutter_app), 但是我们要获取系统版本信息方案我们需要定义一个flutter插件获取系统信息。这里开发工具使用Android Studio 点击 File --> New --> New Flutter Project- 选择 Flutter Plugin点击Fini
2021-01-20 16:55:54
1304
2
原创 Flutter 提交AppStore机器审核被拒以及解决方案
审核被拒邮件如下Dear Developer,We identified one or more issues with a recent delivery for your app, “APP名称” 1.0.0 (1.0.0.6). Please correct the following issues, then upload again.ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references on
2020-12-21 11:56:03
2091
原创 Flutter中定位的使用
Flutter中定位的使用1. 使用geolocator库geolocator库在iOS中正常, 但是在安卓设备上就无法定位, 安卓各种权限都已配置, 还是无法定位, 原因未知.2. 最后采取高德地图需要用的库amap_location 0.2.0 高德地图插件location_permissions: 3.0.0+1 定位权限申请(1) 在高德开放平台申请key, 区分iOS和安卓ps: 申请安卓key需要生成SHA1, 注意区分debug版和release版的SHA1(2)使用1)在
2020-11-06 16:09:44
2195
1
原创 Flutter中使用WebView接入微信h5支付
个人感觉flutter由于对webview支持性不是太好, 造成了很多的坑第一次失败尝试, iOS正常使用webview_flutter这个库webview_flutter: 0.3.22+1 WebView( initialUrl: widget.url, userAgent: 'good_doctor Android iPhone', javascriptMode: JavascriptMode.unrestricted,
2020-11-06 15:21:10
3477
2
原创 Flutter系列 - 子组件向父组件传值(flutter子组件向父组件传值)
flutter子组件向父组件传值方法: 使用系统回调函数ValueChanged在子组件内定义回调函数名称 ChildView({this.changeColorCallBack}); final ValueChanged<Color> changeColorCallBack;注意ValueChanged要指定泛型在父组件使用 child: ChildView(changeColorCallBack: (color) { setState(() {
2020-08-20 09:14:46
6206
原创 flutter系列-定义组件的三种方式
定义小组件的三种方式变量定义组件函数定义组件class定义组件1. 变量定义组件Widget myWidget1 = Container( child: Text('data'),);2. 函数定义组件Widget myWidget2(name) { return Container( child: Text('姓名: ${name}'), );}2. class定义组件class MyWidget3 extends StatelessW
2020-07-30 09:46:07
642
原创 Flutter系列 - 引入本地图片
Flutter系列 - 引入本地图1. 大致文件结构├── image│ ├── myIcon.png│ └── myIcon2.png├── lib└── pubspec.yaml2. 步骤在flutter中引入本地图片, 我们先在项目根目录建立一个images文件夹, 把本地图片资源拖进去在pubspec.yaml中配置, 特别注意, 一定要注意缩进, 否则无法读取图片路径flutter: uses-material-design: true assets:
2020-07-28 14:49:07
4411
3
原创 iOS 手动实现KVO / iOS KVO底层原理
手动实现KVOgit demo地址首先将一下Apple KVO的底层实现吧内部实现原理KVO是基于机制实现的,运用了一个技术.就是类型混合指针机制, 将2个对象的isa指针互相调换, 就是俗称的黑魔法.当某个类的属性对象第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter 方法。派生类在被重写的setter方法内实现真正的通知机制如果原类为MyPerson,那么生成的派生类名为NSKVONotifying_MyPerson每个类对象
2020-07-27 09:48:57
916
1
原创 iOS自定义数字输入框
先看效果开发背景项目开发中经常用到数字输入框,例如输入金额(小数点之前最多几位, 保留几位小数)、年龄(开头不能为0)、纯数字、这些都需要单独在- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range代理方法中判断,比较麻烦,为了不重复造轮子, 单位封装出来了一个通用数字输入框控件。NYLNumberTextField 继承自UITextField,在本类中加入各种属性,来满足各种数
2020-06-19 17:15:53
783
原创 ReactiveCocoa中的订阅-发布简写代码逻辑, 帮助理解流程
官网的RACSubject // RACSubject *subject = [RACSubject subject]; [subject subscribeNext:^(id x) { NSLog(@"x1 = %@", x); }]; [subject subscribeNext:^(id x) { NSLog...
2020-04-11 01:31:41
238
原创 仿QQ音乐播放弹出界面, 向下滑动收回, 向上滑动弹起
仿QQ音乐播放弹出界面, 向下滑动收回, 向上滑动弹起先看效果滑动收回逻辑 1.当向下滑动速度过快会收回 2.当向上滑动速度过快会弹起 3.当滑动offstSetY > 屏幕高度一半就会收回, 4.当滑动offstSetY < 屏幕高度一半就会弹起 我们需要利用系统的类UIPanGestureRecognizer完成重要提示CGPoint speed = ...
2020-03-21 14:10:16
738
原创 利用线程组请求多个网络, 等多个网络请求成功再回到主线程刷新UI
利用线程组请求多个网络, 等多个网络请求成功再回到主线程刷新UI关键函数dispatch_group_create() // 创建线程组dispatch_group_enter // 进入线程组dispatch_group_leave // 离开线程组dispatch_group_notify // 异步任务全部执行完毕PS: dispatch_group_enter和dispat...
2020-03-20 11:05:21
369
原创 iOS蓝牙模块封装以及demo中使用
看图片git地址介绍IoT开发中需要使用到蓝牙与外设进行通讯, 我们新建一个NYLBuletoothManager类对蓝牙繁杂的操作进行封装。初始化的时候可以传入需要连接的设备名称、readUUID、writeUUID、是否自动连接参数。利用block回调蓝牙开启状态、设备是否连接、获取外设数据、写数据。使用方法导入: #import <NYLBluetooth/NYLBule...
2019-12-10 15:52:54
802
原创 UIAlertController分类
UIAlertController分类使用 // 显示一个按钮的alert [UIAlertController showAlertControllerTitle:@"提示" msg:@"提示内容XXXX" btnTitle:@"知道了" callBack:^{ // 点击的回调 }]; // 显示两个按钮的alert [UIAler...
2019-11-26 14:06:02
350
原创 iOS UIView一行代码添加手势
平常我们给UIView添加手势都要 addGestureRecognizer, 然后实现方法taget action方法, 代码比较分散, 现在我们可以制作一个UIView分类, 利用block只要一行代码即可实现.ps: 分类里面利用runtime的属性关联, 来完成属性的使用.如何使用导入#import “UIView+Tap.h” [self.view nyl_addTapGes:...
2019-08-23 23:38:56
2393
原创 iOS GCD的一些用法
iOS GCD的一些用法多线程GCD是纯C的API, 使用起来更高效本文主要讲了1 GCD异步操作2 GCD经典死锁3 GCD线程组4 GCD信号量1 异步并发- (void)diapatchAsyncWithConcurrent { dispatch_queue_t queue = dispatch_queue_create("com.nyl", DISPATCH_QUE...
2019-08-12 10:30:05
277
原创 iOS消息转发 -- 解决NSNull取值崩溃
消息转发 – 解决NSNull取值崩溃运用场景如果数据接口返回的有data中的age是null, 此时取值data[@"age”]会崩溃; 崩溃信息显示:-[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x104d0bea8;利用if(data[@"age”]){ 取值 }, 也可以避免崩溃...
2019-08-08 11:32:54
1877
原创 iOS可以长按复制的label
可以长按复制的label, 带有高亮显示新建NYLCopyLabel继承自UILabel, 然后添加长按手势, 把text赋值给粘贴板, 当长按的label时候, label加背景显示高亮状态, 当复制按钮消失, 高亮取消. (利用UIMenuControllerWillHideMenuNotification的通知监听复制按钮消失)使用方法NYLCopyLabel *label = [N...
2019-07-17 14:14:47
809
原创 小程序图片的移动缩放
小程序图片的移动缩放尝试了movable-view标签是很方便, 但是我想有个拉伸按钮去缩放图片, 于是尝试自己写了.>思想利用catchtouchmove属性计算偏移量, 实时更新坐标js/** * All right by NieYinlong */Page({ /** * 页面的初始数据 */ data: { bgBoxHeight...
2019-07-05 17:50:28
1496
原创 iOS输入框搜索节流&输入框输入拼音的问题 (防抖)
1. 输入框连续输入不调用接口, 停止输入再调用接口, 设置节流阀2. 输入框输入拼音时, 当点击确定汉字再调用搜索接口完整代码//// ViewController.m// 输入框节流//// Created by nyl on 2019/7/1.// Copyright © 2019 nieyinlong. All rights reserved.//#impor...
2019-07-01 11:18:54
1315
原创 微信小程序input搜索解决中文问题(输入拼音) & 实时搜索节流处理(bindinput 节流)
问题微信小程序输入拼音的时候, 还没有完全输入完成, bindinput就会触发, 当我输入"ni’hao", 还没有选定汉字"你好", 就已经触发了, 我想改成当选定"你好"后再触发解决方案bindinput 的detail中有一个 cursor 的属性,返回光标位置,可以根据 此次输入时的cursor对比上一次的cursor 来判断, 键盘输入时触发,event.detail = {v...
2019-06-28 14:11:04
5134
原创 React二维码组件
React二维码组件先看效果ImageCode.jsimport React, { Component } from 'react';import styles from './index.less'export default class ImageCode extends Component{ constructor(props){ super(props) ...
2019-04-24 10:58:32
1008
原创 Swift分享(基础知识, 网络请求, json解析等)
Swift分享目录Swift创始人&简介Swift基础知识点Swift派发机制Swift与Objective-C的比较实际开发中选哪种Swift创始人&简介Chris Lattner伊利诺伊大学 PHDSwift 之父,主要作者Clang 主要贡献者LLVM 主要作者LLVM是Apple官方支持的编译器,而该编译器的前端是Clang,这两个工具都被...
2019-04-10 21:00:19
645
原创 React自定义LoginView
React自定义LoginView(登录界面)先看效果需求: 点击登录按钮, 把两个输入框的值传递到父组件LoginView组件import React, {Component} from 'react'import {Input, Button} from 'antd';export default class LoginView extends Component{ co...
2019-04-02 16:03:05
328
原创 React父子组件相互传值
React父子组件相互传值先看效果代码演示创建InputView子组件import React, {Component} from 'react'export default class InputView extends Component{ constructor(props){ super(props) } static defaultProps = {...
2019-04-02 14:43:43
401
原创 iOS webSocket 长链接的实践
iOS webSocket 使用SocketRocket第三方引入pod 'SocketRocket', '~> 0.5.1'封装WebSocketManagerWebSocketManager.h#import <Foundation/Foundation.h>#import <SocketRocket/SRWebSocket.h>@interfac...
2019-03-25 12:03:27
2530
5
原创 ES6函数参数的解构赋值
函数参数的解构赋值add([101, 202]) // 函数 参数的解构赋值 function add([x, y]) { console.log(`x=${x}, y=${y}`) } function move({num1 = 0, num2 = 0} = {}) { console.log(`num1=${num1}, ...
2019-03-05 17:14:25
596
1
原创 vue图片上传
vue图片上传先看效果图片上传使用vant组件库中的 van-uploader, 引入方法参考官网vant组件库 https://youzan.github.io/vant/#/zh-CN/intro下面看代码UploadPicture.vue&lt;template&gt; &lt;div class="content"&gt; &lt;!-- 底部模块start
2019-02-21 17:58:05
673
原创 Vue中computed和methods的区别
区别computed是属性调用,而methods是函数调用computed带有缓存功能,而methods不是computed计算复杂的逻辑使用例子下面的代码h3写了三行, 但是computed中的comName方法只是执行一次, 除非相应的数据发生改变(点击修改按钮, comName方法再次执行了一次);下面的h4标签写了三行methods中的methodName方法执行三次;所以...
2019-01-11 15:54:45
1211
原创 dva model和组件的实际运用
dva model和组件的实际运用运用到技术dvaJSantd Design./model/nyltest/index.jsimport { get } from 'api';export default { namespace: 'nyltest', state: { nylName: 'nielonglong', nylAge: 22, curr...
2018-12-28 15:49:05
2405
原创 iOS自定义UITabBar中间按钮
iOS自定义UITabBar中间按钮自定义YLTbaBar继承自UITabBargit地址: https://github.com/NieYinlong/DIYTabBarCenterBtn YLTbaBar.h//// YLTabBar.h// 自定义tabbar//// Created by nyl on 2018/10/15.// Copyr...
2018-10-30 10:44:15
1269
原创 iOS 字符串的的compare方法
比较app版本号, 决定是否更新后台存储的版本号1.0.4当前的版本号 1.0.1- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask; NSString *serverVersion = @"1.0.4"; // 后台存储的版本号 NSString...
2018-10-25 11:49:30
622
原创 masonry布局后使用UIView动画
masonry布局后使用UIView动画- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; _testView = [[UIView alloc] init]; _testView.backgroundCol...
2018-07-28 10:44:31
851
原创 iOS, for in数组时, 同时对其进行删减操作崩溃
for in数组时, 同时对其进行删减操作, 崩溃崩溃代码 // forin 里面删减数组元素, 必须加break for (NSString *str in arr) { if ([str isEqualToString:@"002"]) { [arr addObject:@"004"];// 不加break会崩溃 ...
2018-07-28 10:31:01
1188
原创 圆盘刻度尺(iOS圆环刻度尺)
圆盘刻度尺, 废话少说, 先看效果demo地址:https://github.com/NieYinlong/RoundRotatePanel
2018-05-11 14:01:50
4155
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人