- 博客(119)
- 资源 (6)
- 收藏
- 关注
原创 在XCode中使用SwiftGen管理你的图片、配色、多语言文件等
SwiftGen是一个工具,可以为您的项目资源(如图像、本地化字符串等)自动生成Swift代码,然后你就可以像使用一个Class类一样访问你的资源了。而且添加或更新资源后,SwiftGen也会自动更新用于访问资源的Class类。对于管理图片、配色、多语言文件等十分方便。
2024-03-06 01:33:24 1150
原创 WKWebView访问时不携带Cookie的解决方案
使用WKWebView框架开发h5的APP时,访问h5页面不携带Cookie的解决方法...
2024-01-08 02:29:24 887
原创 关于iOS Widget(Locket Widget App)
最近一款UI风格很像Clubhouse的App,功能简单到不能再简单的Locket app火了,其主要功能就是通过桌面Widget显示一张朋友分享的照片,死气沉沉的互联网上终于出现了一点新东西。其实widget的概念自从ios8(2014年)开始就已经有了,但是从Widget出现到现在,一直没有得到很多人的关注,所以什么是Widget?Widget能实现哪些功能呢?什么是widget一句话描述:widget就是App可以在主屏幕上显示一个功能简单的小插件。...
2022-04-28 20:35:56 4365
原创 使用Xib(Storyboard)布局UIScrollView - 以及解决has ambiguous scrollable content width/height问题
概要在xib中自动布局UIScrollView一直都是个挺麻烦的事。尤其从Xcode11开始,苹果对UIScrollView引入了“Content Layout Guides”,这导致默认情况下使用之前的方式布局会遇到“has ambiguous scrollable content width/height”错误。下面分别介绍一下如何关闭“Content Layout Guides”并继续使用老版本的布局方法,以及如何使用新方法进行布局。解决has ambiguous scrollable c
2021-08-24 20:43:34 3483 2
原创 包含UIWebView不能提交到商店的问题
1:首先搜索自己的项目,然后全删掉或者改用WKWebView;2:第三方尤其是pod包含了UIWebView的,从第三方里删除或改用WKWebView,例如一个很常见的库AFNetworking中就包含了UIWebView的扩展:-首先删除掉AFNetworking中的两个扩展文件(UIWebView+AFNetworking.h/UIWebView+AFNetworking.m);-然后注释掉UIKit+AFNetworking.h文件中的#import "UIWebView+AFNetwor
2021-07-13 18:35:34 454
原创 阿里云Ubuntu部署JavaWeb环境(ubuntu18.04)
之前写过一篇《阿里云Ubuntu部署java web》,详细记录了java、tomcat、mysql在ubuntu16.04版本上的安装和配置。最近新装服务器,发现20.04版本的ubuntu有些小变化。*以下内容仅针对20.04变更部分,详细配置请参考: https://blog.csdn.net/cuibo1123/article/details/390514651:更新源:目前ubuntu默认源就很好用,速度也很快,不在需要替换源位置,直接update即可sudo apt-get up
2020-12-23 13:31:48 406
原创 UITableViewCell高亮(按下)时,子视图背景色变透明的解决方法
UITableViewCell highlighted subviews backgroundColor自定义的UITableViewCell,在上面添加一个UIView(这里是UILabel),设置UILabel背景色。但是当cell处于按下状态时,UILabel背景色就会消失。如图(选中行的(2)背景色消失):其实这个问题的原因可以在文档里找到,(大意)当cell处于highlighted/s
2016-11-16 23:09:51 5165 2
原创 ios业务模块间互相跳转的解耦方案
一个app通常由许多个模块组成,所有模块之间免不了会相互调用,例如一个读书管理软件,可能会有书架、用户信息、图书详情等等模块,从用户信息-我读的书中,可以打开图书详情。而在图书详情-所在书架,又可以打开书架。一般这种需求我们可能会这实现:/*用户信息模块*/#import "UserViewController.h"#import "BookDetailViewController.h"@implementation UserViewController//跳转到图书详情+ (void)go
2016-03-30 17:58:06 13606 5
原创 快速理解Runtime of Objective-C
无论面试、论坛、群组...只要是跟ios开发有关的地方,到处都有runtime这个词。各种文章描述的神乎其技,就差把量子物理或者弦理论的知识也用上了。这么diao的东西到底是什么那?我们用最简单的方式来介绍一下,保证只要是猿类,就一定能听懂。
2016-03-28 11:11:45 1977 1
原创 科普:alphago是什么
鉴于大部分人类对alphago的认识:1:Alphago有什么了不起的?不就是算得快吗,ibm早在20年前就通过象棋战胜人类了,又是Google的一次营销。2:alphago 实现人工智能了,电脑马上要超过人类占领地球了。这两种想法哪个才是正确的那?严格地说,都不正确。所以我觉得非常有必要给非计算机行业的同学们科普一下。由于是一篇科普文,所以我们不讨论卷积神经网络或MCTS这些东西,对原理感兴趣的
2016-03-15 11:57:13 6395 2
原创 iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回
iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),关于:发起支付之后只显示一个确定按钮,没有任何错误提示,断点返回的Url Schemes,也只有一个ret=-2,官方文档解释为: “无需处理。发生场景:用户不支付了,点击取消,返回APP。”遇到这个问题,基本就是发起请求的参数传错了。
2016-03-03 18:36:06 12085
原创 App集成ApplePay的一些资料整理
首先apple pay不是苹果自己的事,所以,除了要看苹果的资料,把代码写进ios客户端app,还需要看银联的接口,把钱弄到你的卡里。而且发现银联的网站上居然有比苹果更易懂的文档,但是银联资料下载下来都是rar,我的mac打不开也是醉了。当然,除了银联你也可以选择连连首信易宝。我觉得看完下面这些连接就差不多能集成了:
2016-02-19 18:03:26 7996
翻译 iOS架构模式-揭秘MVC,MVP,MVVM和VIPER
iOS架构模式揭秘MVC,MVP,MVVM和VIPER在IOS中使用MVC感觉很奇怪?对切换到MVVM存在疑虑?听过VIPER,但是又不确定是否值得尝试?继续阅读,你会找到上面问题的答案,如果没有你想要的答案,你可以去评论里骂我。你将要开始学习一些有关ios架构模式的知识。我们将会简单的回顾一些当前受欢迎的架构模式,并在原理上对他们进行比较,然后做一些小例子来实践。如果你需要了解更多详细信息,我也
2016-02-17 17:35:19 5592
原创 ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)
在ios9下,使用ALAsset方式实现的照片浏览器都存在照片模糊的问题,但是目前能找到的大部分开源的照片浏览器都是使用这个框架编写的。 我们通常用以下方法获得照片缩略图:self.image = [UIImage imageWithCGImage:self.asset.thumbnail];调试发现,在ios8上,照片尺寸是150*150,而在ios9上,这个尺寸变成了75*75。查看ap
2015-10-12 18:59:13 8585 3
原创 UITableView判断reloadData结束(iOS)
如果在reloadDate后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。ap
2015-09-18 23:46:45 23033 8
转载 UINavigationController返回手势失效问题
从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,如果自定了back button或者隐藏了navigationBar,该手势就失效了。这是为什么呢?原因我们知道,interactivePopGestureRecognizer从手势触发到行为发生,要经过下面的阶段:interact
2015-07-11 14:08:05 9595
原创 cocoapods工程路径变更后library not found解决方案
在使用cocoapods作为第三方库管理工程时,如果修改工程路径(重命名或剪切走),再次编译这个工程,会提示如下错误: ld: library not found for -lPods-**并且会在原来的路径下重新创建一个build目录。提示错误的原因大概就是项目去原始目录下寻找library了。尝试了清理工程,设置路径等等均未解决。最后把新路径(移动后的项目路径)下的build目录删除掉,在
2015-06-27 18:30:00 8723
原创 CocoaPods停在Analyzing dependencies的解决方案
现在很多开源项目都适用了cocoapod,这给集成第三方库带来了很多便利,在也不用去工程里设置哪些参数、依赖了。不过在执行pod update或者pod install时,经常会卡在Analyzing dependencies不动。这步其实是cocoapods在将他的信息下载到~/cocoapods目录下,可以进入这个目录后通过du -sh * 来查看下载进度,其中的内容就是托管在https://
2015-06-25 11:44:40 11476 2
原创 iOS人脸识别(检测)
iOS的CoreImage已经内建了人脸检测的接口,检测准确率一般,尤其是侧脸,基本上就检测不到。不过跟其他同类产品比较,也还算是不相上下吧。用起来很简单: CIImage* image = [CIImage imageWithCGImage:aImage.CGImage]; NSDictionary *opts = [NSDictionary dictionaryWi
2015-06-01 14:35:09 15180 7
原创 iOS使用Reveal分析他人app界面
不确定界面架构是否合理?最简单的办法就是看看别人是怎么做的,比如QQ。方法也比较简单,就是一个工具:Reveal。下面说说怎么用。测试环境:mac osx 10.10 / xcode 6.3 / ios7.1.2 / Reveal 1.5.1安装: 首先前往 http://revealapp.com/download/ 去下载文件,解压直接运行,就可以看到界面了。这里强烈建议把下载的Reve
2015-05-13 16:23:20 31134 3
原创 (iOS)判断GPS坐标是否在中国
由于火星坐标问题,所以需要判断一下经纬度是否在中国。基本思路是:把整个行政区域划分为几个小的矩形,然后再排除掉一些矩形区域。只要一个点在限定的区域内,并且不在排除的区域内,则判定成功,否则失败。下图中蓝色区域为限定区域,红色区域为排除区域。这种快速判定的方法是从Nokia map中挖掘出来的。优点:快速,相对准确;缺点:边界误差较大源码下载:https://github.com/zcsoft/ZC
2015-05-13 12:51:02 10238
原创 UITabBar和UINavigation组合使用与自定义样式(iOS)
UITabBarController和UINavigationController组合使用与自定义样式源代码github地址:https://github.com/zcsoft/ZCTabNav环境版本:mac 10.10 / ios7+ / xcode 6.3大部分APP的界面框架都需要UITabBarController和UINavigationController组合使用,自己的很多项目也都
2015-05-11 16:15:17 5320
原创 mac下抓取分析iphone数据包 - 使用Wireshark
mac系统版本:mac 10.10 Yosemitexcode版本:6.3.1在追踪bug或者分析借鉴其他公司的app通讯思路时,抓包这件事是非常有必要的。下面说说Wireshark怎么截获iphone的数据包。安装wiresharkwireshark是依赖x11的,所以首先确认安装了x11,mac自带,可以打开升级一下。 前往-实用工具-x11,打开后点击菜单栏上的x11,检查更新 即可。中间提
2015-05-08 16:05:41 11670 1
原创 微信源码结构(ios版)
最新的微信iOS端(6.1.2)程序包里出现了一些“神奇的片段”,看起来像极了源码结构,估计是xcode bug吧,话说之前在其他程序里貌似也碰到过,不废话了,分享一份:这份对查出来的结果进行了去重并排序,原始文件请git:https://github.com/zcsoft/MMStructure$HeadURL $Id0 /Users/*/Desktop/iPhone_Backup/tags/6
2015-03-25 22:00:06 16946 3
原创 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)
ownCloud是什么ownCloud是一个自由且开源的个人云存储解决方案(类似百度网盘或者Dropbox),包括两个部分:服务器和客户端。ownCloud在客户端可通过网页界面,或者安装专用的客户端软件来使用。网页界面当然就是任何能打开网页的平台都支持,而客户端软件也支持相当多平台,Windows、Linux、iOS、Android皆有。除了云存储之外,ownCloud也可用于同步行事历、电子邮
2015-03-08 01:15:26 28363
原创 SSH方式使用root登陆ubuntu14.04
1. 以其他账户登录,修改 root 密码 sudo passwd root2. 修改ssh配置 sudo vim /etc/ssh/sshd_config 注释行 #PermitRootLogin without-password 添加 PermitRootLogin yes3. 重启 ssh 服务 sudo service ssh restart
2015-03-01 23:01:05 2358
原创 架设自己的私有github+数据中心,并通过域名访问(支持adsl动态ip)
如果可以随时随地,用任何设备(手机电脑ipad)访问自己的所有工程,以及数据文件、歌曲、电影、照片等等,那该有多诱人呀,下面介绍一下具体方法。安装环境:ubuntu server 14.041:安装gitlab(开源的版本管理服务器,模仿github写的)下载安装gitlab官方说明文档:https://about.gitlab.com/downloads/安装gitlab前,首先需要安装open
2015-03-01 22:49:07 5926
原创 如何面试程序员
面试对于大多数开发人员来说是一项很基本的技能。一次失败的招聘会造成很严重的长期的后果,二流的人会把三流的人带进公司(一流人才雇一流人才,二流人才雇三流人才)。另一方面,把优秀的应聘者拒之门外更是一种伤害。 一场技术面试至少包括三部分。首先验证简历的真实性,然后评估应聘者的经验价值,最后测试应聘者的技术能力。1: 验证简历 简历上的任何东西都是假的,除非被证明。 简历中实际有价值的
2014-12-14 23:06:22 7658 14
原创 Xcode6编译SDWebImage报错原因分析(SDWebImageDownloaderOperation.m错误)
之前写了一片关于编译SDWebImage报错解决方法的文章:http://blog.csdn.net/cuibo1123/article/details/39434015结果很多人问这个问题的原因,那就在这里给大家说一说好了,分析思路一并送上(不过我还是建议大家自己动手去分析)。首先,如果新建工程,按照SDWebImage的方式声明输出口并引用:@interface ZCTest () @
2014-11-29 04:19:05 3837 3
原创 新ITC提交APP常见问题与解决方法(Icon Alpha,Build version,AppIcon120x120)(2014-11-17)
1)ICON无法上传,提示图片透明(有Alpha通道) 苹果现在不接受png里的Alpha了。简单处理:用自带的预览打开,导出时不勾选Alpha,仍保存为png格式,上传可行!但图标中透明的部分,会变成白色。2)Build版本 submit时出现如下错误:出现这个问题通常是因为之前上传过app但是没使用,第二次上传build版本冲突。修改软件的build版本大于之前版本即可(工程-属性-Ge
2014-11-17 06:40:09 6095
原创 Admob(6.12.x)符号未定义错误的解决方法(IOS)
在升级Admob的SDK版本到6.12.x时,按照官方文档操作(https://developers.google.com/mobile-ads-sdk/docs/#ios),添加如下framework:StoreKitAudioToolboxMessageUISystemConfigurationCoreGraphicsAdSupport之后将-ObjC添加至应用目标构建设置中的Oth
2014-11-17 02:25:10 3382
原创 使用NSCondition实现多线程同步
iOS中实现多线程技术有很多方法。这里说说使用NSCondition实现多线程同步的问题,也就是解决生产者消费者问题(如收发同步等等)。问题流程如下: 消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品; 生产者制造产品,首先也要取得锁,然后生产,再发signal,这样可唤醒wait的消费者。这里需要注意wait和signal的问题: 1: 其实
2014-11-12 13:03:54 7216
原创 解决NSData转NSString返回nil的问题
在使用initWithData等方法将NSData转换成NSString时,如果NSData的内容含有非encoding编码的字符,将会返回nil。这个结果在很多时候可能并不是我们所希望的,比如在获取网页源码进行分析等方面,如果页面采用了utf-8编码,只是含有个别非utf-8字符,我们更希望转换NSString成功,抛弃(或替换)那些非法字符。按照utf-8协议;如果一个字节小于0x80,那么他就是一个字符;如果大于C0小于E0,表示2个字节组成的utf8字符(第一个是110开头的,第二个是10开头
2014-11-09 02:17:38 33239 2
翻译 组件接口(API)设计指南[5]-最后的思考
*返回目录阅读其他章节: http://blog.csdn.net/cuibo1123/article/details/39894477最后的思考 我通过困难的学习以及多年的失误,写了这片篇关于创建组件和api规则的文章。我在试着练习我的写作能力,虽然不可避免地会出现很多我没有提及的例子。 不是所有的规则都适用于所有情况,也没有一条规则在任何情况下适用。这里只是尽可能多的给你一些灵感,
2014-10-10 15:27:21 2571
翻译 组件接口(API)设计指南[4]-通知(Notifications)
规则23: 通知跟随委托方法 在委托方法(适当的,不是数据源方法)和通知之间存在着天生的对应关系。你可以在你代码的任何地方使用他们,而达到完全相同的目的。 如果你有一个关于事件发生的委托,你通常也应该提供一个同样目的的通知。做到即使把委托方法全部移除,使用者也依然可以通过通知来实现相应功能。 委托方法的参数应该与通知的‘userInfo(通知附加值)’内容匹配,通知与您在委托中直接传递参数有一个明显的区别,它通常需要将信息装载到字典(NSDictionary)中。 委托方法:
2014-10-10 15:23:39 2564
翻译 组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols)
我们几乎可以在任何组件中利用经典的委托(delegate)和数据源协议(data-source protocols)。如果你想显示一些数据,那么数据源协议可能就非常适合你,例如你有以下问题: 1:我有很多事物(有很多条数据)。 2:设置每个事物(数据)X的成员Y的值。 同样,在几乎所有情况下,一个经典的委托(delegate)协议形式如下: 1:这件事应当做吗(一个动作发生前,通常调用一个带有返回值的委托方法,决定动作是否执行)? 2:
2014-10-09 14:29:17 3727
翻译 组件接口(API)设计指南[2]-类接口(class interface)
规则1:使用当前平台的描述用语或构架 一个最常见的API错误设计是使用外来的规则,API属于一个特定的平台和相关开发者生态系统。你不能使用任何其他不同平台的描述用语或构架,这会污染你当前的代码库,并破坏你同伴的工作效率。 在编码前要充分了解你的目标平台和代码规范。例如,在IOS和OSX中,不使用异常机制处理错误。统一命名规则(规则要足够详细,但是也要足够简洁)。 了解什么是协议(protocol),委托(delegate),扩展(category)。始终在你的代码中使用术语。遵守构造
2014-10-08 16:23:49 3907
翻译 组件接口(API)设计指南[1]-要考虑的问题
开发人员与组件的显式交互主要有四种: 1. 类接口(classinterface),类公开的属性和方法。 2.委托协议(delegateprotocol),在相关的地方。 3.数据源协议(data-sourceprotocol),酌情。 4.规定的通知(notifications)。 我们设计的每一种交互,都应该需要用户刻意的去使用,不要做隐式的交互调用。另外,你应当思考两个关键问题: ○ 什么是控制?控制会影响界面和类方法。它影响的界面是显而易见的,比如一个按钮,或者一个滑块。而
2014-10-08 15:58:41 4732
翻译 组件接口(API)设计指南-目录
组件接口(API)设计指南-目录; 组件接口(API)设计指南[1]-要考虑的问题; 组件接口(API)设计指南[2]-类接口(class interface); 组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols); 组件接口(API)设计指南[4]-通知(Notifications); 组件接口(API)设计指南[5]-最后的思考;
2014-10-08 15:54:04 5851
翻译 在xcode6中使用矢量图(iPhone6置配UI)
不管是iphone6还是iphone5,所有ios8设备均加载@3x图像,@2x图像不被加载。使用图像文件和XCAsset均不行,stackoverflow上也很多人问这个问题,不知道是不是ios8的bug。(2014年9月23日测试) 3: 关于文中第一个工具:xcode6和ios8支持以Storyboard(或xib)作为Launch(启动)界面。只需要创建xib,然后在项目General里设置即可。使用Storyboard作为启动界面只支持ios8,在ios8以下不显示,但是可以和i
2014-09-23 02:50:33 29829 3
objective-c启用ARC时的内存管理
2014-06-04
linux目录作用详解(超详细,树状排版)
2008-07-03
关于程序设计的内存分配问题
2008-06-14
linux图形界面汉诺塔源程序(c,oop)
2007-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人