移动开发
文章平均质量分 50
helloworld_junyang
这个作者很懒,什么都没留下…
展开
-
组件化-创建私有组件库库
一.创建远程索引库在github上创建仓库在终端上将刚才创建的远程仓库地址与本地进行关联 bogon:~ junyangyang$ pod repo add JYYTestSpec https://github.com/junyangyang/JYYTestSpec.gitCloning spec repo `JYYTestSpec` from `https://github.com/junyangyang/JYYTestSpec.git` 二.创建私有仓库pod li.原创 2020-06-01 23:35:03 · 711 阅读 · 0 评论 -
cookie的问题
今天遇到一个问题,当用户修改密码之后,重新跳到登录页,随便输入密码也可登录,并且可以正常返回用户的账户信息后来发现 只要是NSURLRequest请求,内部会默认保存服务器返回的cookie并保存在沙盒下。等修改密码之后,我们调用 NSHTTPCookieStorage *cookie = [NSHTTPCookieStorage sharedHTTPCookieStorage];...原创 2020-05-08 14:12:04 · 352 阅读 · 0 评论 -
theos
一、安装签名工具???????????确保安装brew $ /usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)" ??利用brew?安装?ldid $ brewinstall ldid ????????二、修改环境变量编...原创 2020-01-16 16:21:50 · 232 阅读 · 0 评论 -
升级Xcode9.3后 cocoapods 无法使用的解决办法
### Error```RuntimeError - [Xcodeproj] Unknown object version./Users/junyangyang/.rvm/gems/ruby-2.2.2@global/gems/xcodeproj-1.4.2/lib/xcodeproj/project.rb:217:in `initialize_from_file'/Users/junyangya...原创 2018-04-08 00:51:50 · 1741 阅读 · 0 评论 -
Xcode rename failed(修改类名失败)的解决办法
1.前往文件夹~/Library/Developer/Xcode 2.删除Xcode文件夹下的DerivedData3.等项目加载完成之后,即可rename原创 2018-04-24 09:33:38 · 5938 阅读 · 0 评论 -
融云的RCConversationListViewController没有回话时显示自定义消息
看文档,有一个emptyConversationView属性,可对该属性进行处理赋值,即可覆盖融云自带的图片提醒/*! 列表为空时显示的View */@property(nonatomic, strong) UIView *emptyConversationView;在继承RCConversationListViewController的控制器中加上 self.emptyConversati...原创 2018-05-20 10:38:17 · 1241 阅读 · 0 评论 -
UITextField和UITextView字数限制
UITextField字数限制[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];- (void)textFieldDidChange:(UITextField *)textField{ CGFlo...原创 2018-07-18 12:50:00 · 478 阅读 · 0 评论 -
账号
企业账号登录Apple Developer Enterprise Program,公司账号登录Apple Developer Program,点击"Enroll",进入下一个页面原创 2017-12-04 13:59:45 · 262 阅读 · 0 评论 -
指纹识别
//// FingerViewController.m// Drivers//// Created by 俊洋洋 on 2017/8/17.// Copyright © 2017年北京中都格罗唯视物流有限公司. All rights reserved.//#import "FingerViewController.h"原创 2017-08-29 16:09:46 · 353 阅读 · 0 评论 -
运行时runtime 知识运用
#pragma mark RunTime代码//获取类的信息-(void)getClassInfo{ //类名 NSLog(@"class name: %s",class_getName([self.myRunTimeTestclass])); NSLog(@"==================原创 2017-08-29 15:35:57 · 288 阅读 · 0 评论 -
好用的宏定义
//获取系统对象#define kApplication[UIApplication sharedApplication]#define kAppWindow[UIApplication sharedApplication].delegate.window#define kAppDelegate[AppDelegate shareAppDelegate]原创 2017-08-14 15:23:40 · 284 阅读 · 0 评论 -
iOS 获取设备的各种信息
一、目录结构:获取屏幕宽度与高度获取设备版本号获取iPhone名称获取app版本号获取电池电量获取当前系统名称获取当前系统版本号获取通用的唯一识别码UUID获取当前设备IP获取总内存大小获取当前可用内存获取精准电池电量获取电池当前的状态(共原创 2017-08-11 14:51:53 · 1536 阅读 · 0 评论 -
Load和Initialize往死了问是一种怎样的体验
一. Load和Initialize的往死了问是一种怎样的体验?Load 和 Initialize 先加载哪个?父类和子类以及 Category 的关系?如果是多个 Category 呢?Load开发文档的直接解读加载顺序总结所有类和分类的 +load 方法都是在被加入到 runtime 的时候调用父类优先于子类加转载 2017-08-11 13:40:00 · 471 阅读 · 0 评论 -
设置label的行间距和字间距,动态计算该label高度(记录)
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:model.cinemaAddress]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyl...原创 2018-08-04 22:25:47 · 1314 阅读 · 0 评论 -
iOS界面之间的跳转
案例 界面ABC A push B ,B push C。想从C界面直接返回到A界面中(不考虑popRoot) NSMutableArray* navArray = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers]; EditInfoViewControll...原创 2018-08-15 19:13:46 · 457 阅读 · 0 评论 -
app应用跳转apptore评分页面
iOS11之前的系统和之后的系统有所不同if (@available(iOS 11.0, *)) { str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/twitter/id%d?mt=8&action=write-review",1427513484];...原创 2018-08-22 16:31:03 · 358 阅读 · 0 评论 -
逆向环境搭建
usbmuxd的使用下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py) https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz将iPhone的22端口(SSH端口)映射到Mac本地的10010端口cd ~/Documents/usbmux...原创 2019-07-26 08:42:41 · 488 阅读 · 0 评论 -
iOS代码混淆(MJ)
iOS程序可以通过class-dump、Hopper、IDA等获取类名、方法名、以及分析程序的执行逻辑 如果进行代码混淆,可以加大别人的分析难度iOS代码混淆方案 源码的混淆 类名 方法名 协议名 …… LLVM中间代码IR的混淆(容易产生bug) 自己编写Pa...原创 2019-05-21 14:41:02 · 1249 阅读 · 2 评论 -
iOS重签名
需要付费账号付费账号创建的配置文件,命名为embedded.mobileprovision(appId、device必须匹配),将该配置文件放入.app包中。 通过Xcode自动生成,然后编译之后,在xxx.app的包中找到该配置文件。 或者去开发者中心去配置下载。从配置文件embedded.mobileprovision中 提取entitl...原创 2019-05-20 09:59:09 · 1046 阅读 · 1 评论 -
iOS逆向-脱壳
什么是加壳? 利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的什么是脱壳? 摘掉壳程序,将未加密的可执行文件还原出来(有些人也称为“砸壳”)iOS中有很多好用的脱壳工具 Clutch:https://github.com/KJCracks/Clutch dump...原创 2019-05-20 10:56:44 · 1092 阅读 · 0 评论 -
对 png 图片做轻量压缩
使用ImageMagick对 png 图片做轻量压缩,及不损失图片质量,又可改变图片文件 hash 值。方法:安装 ImageMagickbrew install imagemagick 压缩工程目录下所有 png 文件find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;...原创 2019-03-05 09:32:27 · 576 阅读 · 0 评论 -
iOS项目修改项目名称
只是简单的记录一下工作需要,需独立出一个新的项目,但功能大体一样,所以直接修改项目的名称修改之前的项目构造请忽视汉字命名的项目。现在准备更改为DykStorage 一.修改项目名称1.1 选中列表中的中格仓储.xcodeproj,回车,进入编辑状态,如图 1.2修改为DykStorage 会弹出修改之前和修改之后的对比样式,点击rename修改之后的列表...原创 2018-12-13 09:56:03 · 764 阅读 · 0 评论 -
判断当前app定位状态
#pragma mark 判断是否打开定位+(BOOL)determineWhetherTheAPPOpensTheLocation{ if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] ==kCLAuthorizationSt...原创 2018-09-18 15:16:09 · 669 阅读 · 0 评论 -
创建GCDTimer 以及取消的问题
@property (nonatomic, strong) dispatch_source_t timer;获取全局子线程队列dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);创建timer添加到队列中 _timer = dispatch_source_cre...原创 2018-08-20 01:00:07 · 1097 阅读 · 0 评论 -
iOS开发 非常全的三方库、插件、大牛博客等等
UI下拉刷新EGOTableViewPullRefresh- 最早的下拉刷新控件。SVPullToRefresh- 下拉刷新控件。MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl原创 2017-05-09 09:37:01 · 9651 阅读 · 0 评论 -
IOS-Sonar代码质量监控
随着新业务的增加和老业务的不断优化,项目中的代码也在一直增加,当代码量达到几十万行的时候,人工审查肯定会费时费力,所以有了 SonarQube代码质量管理平台,通过配置审查规则,让程序帮你检测代码中潜在的bug,让耗时操作通过机器完成,节约人力成本。好了废话不多说,来介绍一下sonar针对ios项目的使用。Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量转载 2016-12-23 10:09:01 · 2802 阅读 · 1 评论 -
带有动画效果的tabbar
在点击时间里增加动画,根据button获取view,写view的transform/** * 监听按钮点击 */- (void)buttonClick:(LYTabBarButton *)button{ // 1.通知代理 if ([self.delegaterespondsToSelector:@selector(tabB原创 2016-07-11 15:09:16 · 333 阅读 · 0 评论 -
底层并发 API
这篇文章里,我们将会讨论一些 iOS 和 OS X 都可以使用的底层 API。除了 dispatch_once ,我们一般不鼓励使用其中的任何一种技术。但是我们想要揭示出表面之下深层次的一些可利用的方面。这些底层的 API 提供了大量的灵活性,随之而来的是大量的复杂度和更多的责任。在我们的文章常见的后台实践中提到的高层的 API 和模式能够让你专注于手头的任务并且免于大量的问题。通常来说,原创 2016-06-28 17:38:51 · 4224 阅读 · 0 评论 -
UITextField限制个数,没用代理
_textField = [[UITextFieldalloc]initWithFrame:CGRectMake(15,10, SCREENWIDTH-30,50)]; _textField.placeholder =@"美食宣言"; _textField.font = [UIFontsystemFontOfSize:13]; _t原创 2016-06-12 14:00:44 · 293 阅读 · 0 评论 -
更轻量的 View Controllers
View controllers 通常是 iOS 项目中最大的文件,并且它们包含了许多不必要的代码。所以 View controllers 中的代码几乎总是复用率最低的。我们将会看到给 view controllers 瘦身的技术,让代码变得可以复用,以及把代码移动到更合适的地方。你可以在 Github 上获取关于这个问题的示例项目。把 Data Source 和其他 Protoc原创 2016-06-27 15:42:07 · 300 阅读 · 0 评论 -
UITableViewCell刚出现时,出现的动画
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{// NSArray *array = tableView.indexPathsForVisibleRows;// N原创 2016-06-24 13:10:36 · 3637 阅读 · 0 评论 -
iOS array数组常用的方法
下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];1、获取数组中总共有多少个对象。- (NSUInteger)count; NSLog(@"%d",[array count]); 22、获取数组中下标对应的元素对象转载 2016-06-24 11:38:34 · 12771 阅读 · 0 评论 -
右滑返回上一个界面FDFullscreenPopGesture
// The MIT License (MIT)//// Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog )//// Permission is hereby granted, free of charge, to any person obtaining a copy原创 2016-04-28 10:21:20 · 3403 阅读 · 1 评论 -
UITableView简单介绍
1.协议介绍UITableViewDataSource(11)UITableViewDelegate(常用)2.刷新下拉刷新:上拉刷新3.搜索4.重用自定义cell不使用重用方法注册Cell5.编辑滑动更多6.优化UITableView 总结UITableView是UIScrollView的子类,因此它可以自动原创 2016-04-08 11:23:21 · 498 阅读 · 0 评论 -
NSPredicate
模糊查询 Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。 NSPredicate *predicate; predicate=[NSPredicatepredicateWithFormat:@"name=='H原创 2016-04-07 17:16:26 · 273 阅读 · 0 评论 -
Xcode连接git@osc
Xcode 已经集成了git,建立新项目时钩选使用git,然后按照下面步骤让Xcode和git@osc 建立连接。 第一步:成生SSH密钥打开终端命令工具,输入命令:ssh-keygen -t rsa -C "diaosi@gmail.com"注意ssh-keygen没有空格。屏幕输出:Generating public/private rsa key pair.转载 2016-04-01 17:05:39 · 267 阅读 · 0 评论 -
CATransform3D
iOS开发CoreAnimation解读——CATransform3D变换的应用一、引言 CATransform3D定义了一个变化矩阵,通过对矩阵参数的设置,我们可以改变layer的一些属性,这个属性的改变,可以产生动画的效果。首先,CATransform3D定义了一个4*4的矩阵,如下:?123原创 2016-04-01 15:59:22 · 308 阅读 · 0 评论 -
3D touch
#import "BSTableViewController.h"#import "BSDetailViewController.h"@interface BSTableViewController ()UIViewControllerPreviewingDelegate,BSDetailViewControllerDelegate>@p原创 2016-03-31 08:42:50 · 525 阅读 · 0 评论 -
iOS开发笔记--使用blend改变图片颜色
最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章。在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色。在iOS5和6的SDK里部分标准控件引入了tintColor,来满足个性化界面的需求,但是Appl转载 2016-07-11 15:45:01 · 468 阅读 · 0 评论 -
避免滥用单例
单例是整个 Cocoa 中被广泛使用的核心设计模式之一。事实上,苹果开发者库把单例作为 "Cocoa 核心竞争力" 之一。作为一个iOS开发者,我们经常和单例打交道,比如 UIApplication 和 NSFileManager 等等。我们在开源项目、苹果示例代码和 StackOverflow 中见过了无数使用单例的例子。Xcode 甚至有一个默认的 "Dispatch Once" 代码片段原创 2016-07-01 13:47:53 · 4162 阅读 · 0 评论