Objective-C
端_木
胜利不是最后的结局,失败也不是最终的宿命,重要的是勇气。
展开
-
iOS15适配
导航栏和列表适配代码//适配iOS15if (@available(iOS 15.0, *)) { //导航栏适配 UINavigationBarAppearance *appearance = [UINavigationBarAppearance new]; [appearance configureWithOpaqueBackground]; appearance.backgroundColor = UIColor.whiteCol原创 2021-09-28 18:07:32 · 854 阅读 · 0 评论 -
LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 “(null)“
LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x15dde658 ed2a1267 ab2496d7 34f186ad ... ec431c65 02d68f35 }.原创 2021-08-25 10:11:10 · 3172 阅读 · 0 评论 -
图片压缩
+ (NSData *)compressImage:(UIImage *)image { int width = (int)image.size.width; int height = (int)image.size.height; int updateWidth = width; int updateHeight = height; int longSide = MAX(width, height); int shortSide = MIN(width, .原创 2020-05-30 14:20:40 · 535 阅读 · 0 评论 -
ios13 navigationBar暗黑模式下没有随着模式切换变色
影响改变的因为是电池条的颜色,navigationBar的barStyle设置UIBarStyleDefault就可以,代码如下:self.navigationBar.barStyle = UIBarStyleDefault;[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];文档上...原创 2020-03-26 10:35:16 · 1546 阅读 · 0 评论 -
如何查看ipa中包含设备的UDID
1.首先找到对应的包,把.ipa包改名.zip解压缩;2.右击查看包里的内容,找到名字为:embedded.mobileprovision证书文件;3.打开电脑终端,进入原来embedded.mobileprovision的目录,然后运行命令行:security cms -D -i embedded.mobileprovision...原创 2020-03-20 08:00:35 · 928 阅读 · 0 评论 -
YNPageViewController使用时headViwe动态高度实现
在使用Masonry布局时,按照正常规则布局、赋值;然后在执行如下代码就可以实现: [self.headView setNeedsLayout]; [self.headView layoutIfNeeded]; CGFloat allHeight = [self.newHeadView systemLayoutSizeFittingSize:UILayoutFittingCompr...原创 2020-03-06 15:48:25 · 1917 阅读 · 0 评论 -
iOS11下自定义leftBarButtonItem大小改变的问题修复
leftBarButtonItem加载网络图片时必须要设置自定控件的大小,如果图片太大,会导致设置为UIButton的背景图片变大,拉宽leftBarButtonItem的大小 。iOS11之前的写法如下:UIButton *customButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 32, 32];[customBu...原创 2020-02-27 17:22:14 · 2039 阅读 · 0 评论 -
MHTextField
MHTextField完成了注册表单的多个功能,通过内置的键盘工具条、输入较验以及滚屏支持拓展了UITextField。对于多行类表,用户可点击键盘左上角的"Previous"和"Next"在不同输入框之间跳转。翻译 2015-03-19 16:12:46 · 734 阅读 · 0 评论 -
走进swfit(五)OC调用Swift
大概步骤:1、设置Product Module Name和Product Name,Product Module Name很重要 swift 的头文件就是根据这个来命名的。2、在swift文件中使用,@objc()加以声明3、在OC的.m文件中引用,#import "Product Module Name-Swift.h",一定是有.m文件中引用,在.h中使用会提示 xx-sw原创 2015-02-26 13:20:35 · 805 阅读 · 0 评论 -
UIImage设置渲染模式
在使用系统tabbar添加图片时,图片会模糊,修改图片大小也不行,后来找到了渲染这个概念,顺藤摸瓜就找到了imageWithRenderingMode这个方法。UIImage去掉渲染只能在IOS7或者以上的系统使用UIImage *img = [UIImage imageName:@"xxxx"]; img= [img imageWithRenderingMode:UI原创 2015-02-25 18:21:04 · 1455 阅读 · 0 评论 -
popToViewController、pushViewController问题
想实现这样一个效果: VC6 -->VC7 -->在VC7的点击事件里回到VC6,在push到VC8 UINavigationController *navVC = self.navigationController; for (UIViewController *temp in self.navigationController.viewControllers) {原创 2015-01-05 13:22:39 · 1870 阅读 · 0 评论 -
__weak & __strong
__weak可以避免循环引用的问题;__weak修饰的变量所引用的对象被释放,将nil传给该变量;__weak修饰的变量,即是使用注册到autoreleasepool中的对象,因此在使用_weak修饰的变量时,最好先暂时赋值__strong修饰的变量后在使用。__weak __typeof(self)weakSelf = self; AFNetworkReachabilityStatu原创 2014-12-28 10:26:41 · 1391 阅读 · 0 评论 -
dSYM 文件分析工具
来到新公司后,前段时间就一直在忙,前不久 项目 终于成功发布上线了,最近就在给项目做优化,并排除一些线上软件的 bug,因为项目中使用了友盟统计,所以在友盟给出的错误信息统计中能比较方便的找出客户端异常的信息,可是很多像数组越界却只给出了 *** -[__NSArrayM objectAtIndex:]: index 50 beyond bounds [0 .. 39]' 这类错误信息,如下图转载 2014-11-24 19:07:12 · 1009 阅读 · 0 评论 -
IOS开发错误
After modifying system headers, please delete the module cache at '/Users/XXX/Library/Developer/Xcode/DerivedData/XXXX/2ZMDAUJMMHSDC' 解决办法:前往 '/Users/XXX/Library/Developer/Xcode/DerivedData/XXX/2ZM原创 2014-05-29 14:54:07 · 3333 阅读 · 0 评论 -
便捷开发工具(未完)
模拟器管理工具1、SimPholders,可以随时了解你的模拟器各版本内应用,提供删除不必要的应用连接下载地址:http://simpholders.com/原创 2014-07-23 10:13:50 · 2561 阅读 · 2 评论 -
GCDObjC
GCDObjChttps://github.com/mjmsmith/gcdobjcGCDObjC is an Objective-C wrapper for the most commonly used features of Grand Central Dispatch. It has four main aims:GCDObjC 封装了GCD最常使用的一些特性,它有着转载 2014-10-31 10:54:56 · 895 阅读 · 0 评论 -
Valid signing identity not found解决办法(原有IDP私钥丢失)及Certificate、App ID、Devices、Provisioning Profiles之间区别
前言:刚刚把mini换成了macbookair,之前一直在mini上进行开发,到换air之前,第一个项目刚刚上线,第一次申请测试,发布证书等等都是在mini上完成的,由于粗心未能料到,换成air后,就把mini的全部清空,然后二手卖了,之前的开发证书也被我删除了,其实应该备份和导出的。。。。导致现在在新air上,登陆网站:想直接下载之前建立好的证书,转载 2014-10-11 17:37:33 · 1593 阅读 · 12 评论 -
开发笔记总结
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用)。其实在代码里还是可以设置的,那就是删除背景view[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];2,NSDate:转载 2014-10-11 17:19:42 · 1792 阅读 · 0 评论 -
iOS7.0后隐藏状态栏
iOS7中我们通过ViewController重载方法返回枚举值的方法来控制状态栏的隐藏和样式。setStatusBarHidden在iOS7中不起作用了。需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;然后,在UIViewController子类中实现以下两个方法:- (B原创 2014-09-10 17:07:56 · 1268 阅读 · 1 评论 -
16进制颜色(html颜色值)字符串转为UIColor
/** * 字符串转颜色 */@interface ColorTool : NSObject//字符串转颜色+ (UIColor *) colorWithHexString: (NSString *) stringToConvert;@end@implementation ColorTool#define DEFAULT_VOID_COLOR [UIColor whit转载 2014-08-11 12:16:03 · 1357 阅读 · 0 评论 -
微信iOS SDK 1.5 出错 Undefined symbols for architecture
今天测试最新的微信iOS SDK, 仅仅是建了一个空的工程,把sdk加进去运行,就报了以下错误:Undefined symbols for architecture x86_64: "operator delete[](void*)", referenced from: +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatA转载 2015-04-03 13:02:59 · 1065 阅读 · 0 评论 -
objection来模块化开发iOS项目
objection 是一个轻量级的依赖注入框架「依赖注入」是面向对象编程的一种设计模式,用来减少代码之间的耦合度。通常基于接口来实现,也就是说不需要new一个对象,而是通过相关的控制器来获取对象。2013年最火的PHP框架 laravel 就是其中的典型。具体使用如下:1、首先创建protocol文件@protocol PPHomeViewControllerProtoco原创 2015-04-10 15:52:07 · 2837 阅读 · 1 评论 -
动态修改UINavigationBar的背景色
这是我们最终想要得到的效果:思路在UISrollView的delegate方法 - (void)scrollViewDidScroll:(UIScrollView *)scrollView中根据当前的contentOffset更新navigationBar的backgroundColor即可,so easy~开动那么我们来看看apple为我们提供了哪些API来设置navigat转载 2015-04-23 21:56:25 · 871 阅读 · 0 评论 -
Reveal 2真机查看其它应用
1. 前提必须要有越狱的 iOS 设备;iOS 设备必须与电脑处于同一个局域网;电脑需要安装 Reveal2. 配置越狱设备(1) 打开 Cydia,等待 Cydia 数据更新完成;Cydia.PNG(2) 点击搜索 Reveal Loader,并进行安装,如下图:RevealLoader.PNG(3) 安装完成后,系统会提示需要重启 SpringB原创 2016-10-11 14:43:45 · 2701 阅读 · 0 评论 -
文字渐渐显示效果
#import "DMAnimationLayer.h"@interface DMAnimationLayer()@property (nonatomic, retain) CAShapeLayer *pathLayer;@property (nonatomic, retain) CALayer *penLayer;@end@implementation DMAnimationLay原创 2016-06-30 23:38:17 · 4758 阅读 · 0 评论 -
uitextField限制字数方法和抖动效果
这个方法也是在网上找的。具体如下:.h文件#import @interface UITextField (LimitLength)/** * 使用时只要调用此方法,加上一个长度(int),就可以实现了字数限制,汉字不可以 * * @param length */- (void)limitTextLength:(int)length;@end.m文件#impo原创 2014-07-08 18:18:56 · 2018 阅读 · 0 评论 -
关联objc_setAssociatedObject,objc_getAssociatedObject
关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因此,我们原创 2014-07-21 15:19:57 · 5431 阅读 · 2 评论 -
UITextField限制输入中文字数
UITextField限制输入中文字数原创 2014-08-05 10:43:44 · 3496 阅读 · 8 评论 -
详解Runtime运行时机制
简介Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如:[receiver message];// 底层运行时会被编译器转化为:objc_msgSend(receiver, selector)// 如果其还有参数比如:[receiver message:(id)arg...];//转载 2016-01-14 21:47:00 · 1974 阅读 · 0 评论 -
更改TableHeaderView的高度
具体代码如下: [self.m_tableView beginUpdates]; CGRect newFrame = self.m_headView2.frame; newFrame.size.height = newFrame.size.height -29; self.m_headView2.frame = newFrame;原创 2015-11-29 21:47:26 · 3090 阅读 · 0 评论 -
一、Create-a-new-project
创建项目mkdir ilovereactcd ilovereactnpm init初始/发布Gitgit initgit add .git commit -m "First Commit"git remote add origin git@github.com:shahaier/sikeio-ilovereact.gitgit push origin m原创 2015-10-29 19:56:34 · 2212 阅读 · 0 评论 -
__weak与__block区别
公司最近在招 iOS,我面试了几个人,问到 block 避免循环引用的问题时,发现好多人都说通过添加 __block 修饰词来避免。再加上我对__block和__weak也没有区分的太明确,搞得我都有点儿怀疑我自己以前是不是用错了。正好借这个机会来一探究竟~准备工作首先我定义了一个类 MyObject 继承 NSObject,并添加了一个属性 text,重写了descripti转载 2015-09-23 23:48:06 · 769 阅读 · 0 评论 -
iOS及Mac开源项目和学习资料【超级全面】
UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl – XHRefr转载 2015-09-22 17:41:51 · 2093 阅读 · 0 评论 -
深入理解RunLoop
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。IndexRunLoop 的概念RunLoop 与线程的关系RunLoop 对外的接口RunLoop转载 2015-10-10 01:25:43 · 1434 阅读 · 0 评论 -
实用小工具分享
Objetive-C: 从.m文件中提取函数定义:http://www.mgenware.com/cn/u/oc_m2h/Objective-C: 属性定义Setter在线生成工具:http://www.mgenware.com/blog/?p=2683翻译 2015-08-04 00:37:04 · 569 阅读 · 0 评论 -
iOS程序退出
iOS程序退出原创 2014-09-05 16:31:33 · 1336 阅读 · 2 评论 -
如何防止客户端被破解
很多应用都需要用户登录或者签名认证,这可能需要在客户端保存登录信息、签名密钥、加密算法等。如何保证这些重要信息不被窃取,算法不被破解,这些成为应用开发中很重要的内容,同样也是最容易忽视的地方。一个小小的细节可能就成为整个系统的突破口,这里从实际工程角度总结了一些容易忽视的细节和常用的方法。密钥保存在外部钥匙扣密钥保存在Keychain并不安全,iOS越狱后可以导出K转载 2014-08-06 20:32:06 · 3052 阅读 · 0 评论 -
一个显示日期的工具类
一个显示日期的工具类.h文件#import @interface TimeUtil : NSObject+ (NSString*)getTimeStr1:(long long)time;+(NSString*) getTimeStrStyle1:(long long)time;+ (NSString*)getTimeStr1Short:(long long)time;原创 2014-06-30 17:49:26 · 1365 阅读 · 0 评论 -
ios7 tableviewcell上面有button,但是button的点击效果没有
一.IOS6的UITableViewCell 子视图(subviews)的容器是UITableViewCellContentView IOS7的UITableViewCell 子视图(subviews)的容器是UITableViewCellScrollView 由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCell转载 2014-06-26 13:53:30 · 1817 阅读 · 0 评论 -
MD5加密工具
.h文件/** * MD5加密工具 */#import @interface MD5Tools : NSObject/** * MD5加密 */+(NSString *)md5:(NSString *)value;/** * 密码MD5+手机号后4位 ,在作MD5加密 */+(NSString *)md5Psd:(NSString *)password原创 2014-07-16 20:21:52 · 1156 阅读 · 0 评论