- 博客(29)
- 收藏
- 关注
原创 代码被code4app首页推荐啦
利用贝塞尔曲线画的颜色选择器居然被code4app推荐了 , 可惜大家都只在code4app上评论,木有去git上给我小星星,不管怎么样留个纪念
2017-06-06 16:23:58
5068
原创 iOS自带返回手势在rootVC上右滑两次导致页面无法跳转
前一段时间被提了个特别奇怪的bug:一个特别简单的设置页面,操作几下之后无法跳转到下一个页面,然而我们这边几个开发都无法重现出来,后台也抓不到任何crash报告。只能去测试那边看怎么复现,测试那边也是不是次次都能重现出来,后来发现这个测试有个习惯,喜欢在页面上随意的左滑右滑,顺着这个思路,果然重现了这个问题。“页面无法跳转,肯定是主线程被阻塞了啊”,顺着这个思路,我监控了一下线程,发现一切正常
2017-06-06 16:14:26
990
原创 通过 Method swizzing解决项目模块化后语言国际化的问题
上篇文章中提到我们目前的工程用pod进行了模块化管理, 当项目被拆分之后,资源文件、语言文件当然也要被拆分。一开始以为和图片资源一样,不用特殊处理,最终会合并为一个car文件。说干就干,拆分的时候就直接在每个模块下面建立一个语言文件,命名为:Localizable.strings。拆好一个模块之后,run起来发现大量的翻译丢失了,仔细检查之后发现,工程中的string文件并没有像想象中
2017-05-11 00:54:57
619
原创 NSProxy解决CADisplayLink ,NSTimer强引用target引起的无法释放问题
最近开发中遇到个问题,在cell中开启了CADisplayLink并加入Runloop,在释放的时候,VC以及其他cell的dealloc都走了,只有开启定时器的cell不走dealloc方法。 查看发现NSTimer对target是强引用的,这导致了target泄漏,要解决这个问题必须打破循环引用,在NSTimer和target中间加多一层代理(Proxy),代理作为
2017-03-28 00:17:22
1385
原创 基于Cocopods的模块化管理实现
去年下半年随着项目的功能越来越复杂,为提高代码的可维护性,对代码进行了一次模块化拆分。大概思路是,将代码拆分成为一个一个的模块,然后采用pod对模块进行管理。注:虽然上面的示意图中的依赖是有层级关系的,但是实际上最后是没有层级关系。第一步:将工程拆分成多个子工程。这一步一开始因为对Pod的机制不熟悉走了弯路,实际上,只需要把工程拆成多个独立文件夹就可以了,并不需要建
2017-03-13 20:40:59
1520
原创 10.12下cocoapods无法生成workspace的解决方案
前一段时间把mac的硬盘更换且重装系统之后,发现pod install命令无法生成workspace文件了。经过反复实践终于发现了问题,
2017-03-05 16:11:01
686
原创 podspec文件的写法详解
创建pod库的时候会用到podspec文件将lib中用到的包括资源、源码、需要引用的framework,以及第三库等等组织起来。这篇文章会详细的解释一下podspec的写法。
2017-02-19 15:21:14
17458
原创 cocoapods repo切换至镜像
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/masterpod setup //务必在手动下载代码后执行一次,执行后 Setup completed//在执行pod install --verbose --no-repo-update //避免去更新了另外一个镜
2016-11-09 16:22:02
6091
原创 cocoapods 使用
1、用xcode创建工程。2、用终端进入工程的根目录,指令“pod init”, 在根目录下会产生profile文件。3、在终端输入 “pod install”, 会产生.xcworkspace文件,以及Pods文件夹。4、打开.xcworkspace文件,在profile中配置需要用到的类库。5、在终端输入“pod update ”或者“podupdate
2016-11-08 16:52:31
256
原创 Bundle工程中 @2x ,@3x 图片合并为tiff的解决方法
build setting中 COMBINE_HIDPI_IMAGES 设为NO
2016-07-29 16:55:39
811
原创 AppleWatch开发准备-证书配置
虽然xcode也可以自动配置证书生成App ID,之前也看到有博客采用不停的fix issue来解决和配置证书和App ID。但是作为一个开发人员还是有必要了解下证书配置流程。
2016-03-14 22:21:54
2789
原创 页面加UIPanGestureRecognizer手势后,无法响应tableViewCell点击事件的解决办法
页面加UIPanGestureRecognizer手势后,无法响应tableViewCell点击事件的解决办法: 直接在viewcontroller中加代理方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
2014-12-12 14:01:29
4199
原创 Could not inspect the application package.错误解决
解决方法:拷一份可以打包成功的工程的plist文件 替换当前文件中的plist。最近需要打包一份很早之前的工程,打包好了之后一直无法安装。用itunes安装,报”不是正确的应用文件“。用xcode安装报 Could not inspect the application package.这个错误。步骤1、网上查了一下,有些是因为命名文件夹为 resource 了,工程里确实
2014-12-10 13:33:21
9443
转载 百度云推送证书制作(开发模式)
1. 登录到 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/index.action )并点击 App IDs2. 创建一个不使用通配符的 App ID 。通配符 ID 不能用于推送通知服务。例如, com.itotem.iphone3. 点击App I
2014-10-13 15:02:16
847
原创 用UIButton 自定义UITabbarController+UINavgationController 实现页面跳转
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //
2014-08-07 15:34:35
952
原创 基于代码的 UITabbarController与UINavgationController 实现下导航页面切换
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //
2014-08-07 14:22:39
868
原创 基于Storyboard的 UITabbarController与UINavgationController 实现下导航切换
一、 新建一个空的Application 二、新建storyboard 将新建的MainStoryboard 设置为主storyboard 三、1、拖拽UITabbarController到mainstoryboard 拖拽UITabbarController 到storyboard之后会
2014-08-07 14:00:45
3203
原创 利用UIPanGestureRecognizer 判断手势滑动方向
- (void)didMoveToView:(SKView *)view{ if (view == self.view && self.sceneType==Scene_Me) { // Add swipe recognizer immediately after we move to this scene. UIPanGestureRecognizer
2014-07-30 15:04:55
17764
原创 iOS开发单例模式 dispatch_once
iOS开发单例模式 dispatch_onceiOS开发单例模式什么是单例单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。iOS开发中如何使用单例传统的单例构造方法+
2014-07-30 14:53:20
823
原创 iOS数组求和、求平均值
NSArray *testArray = [NSArrayarrayWithObjects:@"2.0", @"2.3", @"3.0",@"4.0", nil];NSNumber *sum = [testArrayvalueForKeyPath:@"@sum.floatValue"];NSNumber *avg= [testArray valueForKeyPath:@"@avg.flo
2014-07-30 14:48:49
4784
原创 去除字符串中的html格式
+ (NSString *)flattenHTML:(NSString *)html{//去除html格式 NSScanner *theScanner; NSString *text = nil; theScanner = [NSScannerscannerWithString:html];
2013-06-14 10:25:48
1077
原创 时间格式的转换与计算时间间隔
+(NSString *)dayformatter:(NSString *)time{ //将获取到的时间转换为yyyy-mm-dd,YYYY-MM-dd HH:mm:ss NSDate *date=[NSDatedateWithTimeIntervalSince1970:[timedoubleValue]/1000]; NSLog(
2013-06-14 10:22:24
850
原创 ios常用正则表达式与左对齐的UIAlertView
+(BOOL)alertPhoneString:(NSString *)text ifalert:(BOOL)ifalert{//判断是手机号码 if (text.length==0) { UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message
2013-06-14 10:04:30
1134
转载 iOS SDK自带md5加密 (16位)
+ (NSString *) setmd5:(NSString *) input{ //MD5加密 const char *cStr = [inputUTF8String]; unsigned char digest[16]; CC_MD5( cStr, strlen(cStr), digest );// This is t
2013-06-14 09:56:58
1543
原创 iOS发送请求
-(void)post:(NSString *)headurl body:(NSString *)body method:(NSString *)method delegate:((idDoneRequestDelegate>)delegate { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIO
2013-06-14 09:48:23
682
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人