iOS开发
文章平均质量分 51
阮小木
这个作者很懒,什么都没留下…
展开
-
ios 多选菜单
以前的时候自己闲暇没事做了个多选菜单的view,在cocoachina上边以前传了一份,跑了一下现在还能用,用oc写的,以后会做一个swift版本,代码简单,有可以改进的地方,希望指正下载链接:https://download.csdn.net/download/u012490014/10740315...原创 2018-10-24 14:31:53 · 973 阅读 · 0 评论 -
ios 修改工程名称,程序名称(xcode6.3)
第一步:修改工程文件夹名称第二步:打开新文件夹,将.xcodeproj更名,右键点击.xcodeproj并选择Show package contents,弹出一个对话框包含了几个文件.(事实上.xcodeproj是这几个文件打成的包)第三步:用textEdit打开 project.pbxproj文件,将所有旧名字替换成为新的第四步:把相应的文件夹名改成工原创 2015-05-22 16:55:42 · 1459 阅读 · 0 评论 -
ios 协议(delegate)使用过程中遇到assign attribute must be unsafeunretained
今天在使用协议的过程中,偶然发现这样使用@interface AppDelegate (){ id testdelegate;}@property (nonatomic , assign) id testdelegate;@end@implementation AppDelegate@synthesize testdelegate;会报错:Existing i原创 2015-03-30 15:06:16 · 1924 阅读 · 0 评论 -
ios (推送之远程推送)升级成ios8系统之后有些程序接收不到远程推送
维护一个程序,当手机升级到ios8之后就不能接收到远程推送,显示注册失败,查了下资料,原来是没有获取用户许可,加了个方法试了下,okif ([[[UIDevice currentDevice]systemVersion ]integerValue] >= 8) { UIUserNotificationSettings*setting = [UIUserNoti原创 2015-01-22 19:39:50 · 2159 阅读 · 0 评论 -
iOS截屏代码
1.普通界面/** *截图功能 */-(void)screenShot{ UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0); //设置截屏大小 [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()]转载 2015-01-04 11:17:19 · 2046 阅读 · 0 评论 -
iOS开发的22个奇谲巧技
今天看到一些有用的ios开发技巧,感觉不错,转来收藏分享1. TableView不显示没内容的Cell怎么办?类似于图1,我不想让下面的那些空显示。很简单,添加“self.tableView.tableFooterView = [[UIView alloc] init];”试过都说好,加完这句之后就变成了图2的样子。2. 自定义了leftBarbuttonIte转载 2014-12-30 09:56:27 · 1073 阅读 · 0 评论 -
NSOperationQueue与GCD的使用原则和场景
首先,我们要明确NSOperationQueue与GCD之间的关系NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象。其次,我们要区别两者的不同GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-转载 2014-12-29 11:00:28 · 991 阅读 · 0 评论 -
ios block初级使用
block和GCD是ios高级程序员面试必问的问题,ben'pi原创 2014-12-26 20:15:24 · 923 阅读 · 0 评论 -
ios coredata的用法和利弊
第一部分coredata的用法先建立一个使用use coredata的工程,在。xcdatamodeld文件中建立表格并为表格添加属性为表格添加关系,下一步生成表格model其中生成的model:User和Department里面的属性用的是@dynamic@property有两个对应的词,一个是@synthesize,一个是@dyn原创 2014-12-24 20:34:29 · 1762 阅读 · 0 评论 -
ios navigationcontroller 滑动返回与webview加载html图片自适应屏幕宽度
1 、ios navigationcontroller 滑动返回滑动返回是navigationcontroller默认返回按钮自带的功能,如果返回按钮自定义该功能失效,解决的办法有两个: ① self.navigationItem.backBarButtonItem = [[UIBarButtonItemalloc]initWithCustomView:bu原创 2014-12-18 19:01:00 · 2678 阅读 · 1 评论 -
用终端查询数据库sqlite(自己创建的,或者是用coredata创建的)里的东西
首先需要知道数据库的路径,coredata创建的一般都是放在沙盒Documents文件夹中,而自己建的就看自己了,sqlite3 #数据库路径# //进入数据库.tables //查看数据库中的表.schema //进入具体的表,显示表结构select * from #表名#go //显示表信息如图(查看coredat原创 2014-12-23 16:42:07 · 2274 阅读 · 0 评论 -
ios (推送之远程推送)NSLocalizedDescription=未找到应用程序的“aps-environment”的权利字符串
获取deviceToken的时候,应用程序报出下面的错误:Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的权利字符串" UserInfo=0x118e60 {NSLocalizedDescription=未找到应用程序的“aps-enviro转载 2015-01-09 18:40:13 · 5558 阅读 · 0 评论 -
iOS(推送)小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介(1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请。若注册成功,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceTok转载 2015-01-09 16:59:59 · 857 阅读 · 0 评论 -
iOS 开发笔记(一)
一 崩溃日志 有时候我们会遇到在设备上、模拟器上运行完好,但是上线之后会遇到闪退的问题,但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。有几种方法可以从设备上获取崩溃日志。设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上。根据电脑操作系统的不同,崩溃日志将保存在以下位置:M原创 2015-10-08 16:58:01 · 637 阅读 · 0 评论 -
关于目前自己iOS项目使用的第三方开源库
1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单。 3.MBProgressHUD 也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading。建议封装在Base转载 2015-12-14 14:52:26 · 709 阅读 · 0 评论 -
ios 遍历数组的方法
目前所知有七种方法 //第一种 [arr enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop){ NSLog(@"%ld,%@",idx,[arr objectAtIndex:idx]); }]; //第二种 dispatch_apply([arr count原创 2015-01-05 18:55:51 · 2194 阅读 · 0 评论 -
swift 之空合运算符(Nil Coalescing Operator)
空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b.这个运算符有两个条件:1.表达式a必须是Optional类型2.默认值b的类型必须要和a存储值的类型保持一致空合并运算符是对以下代码的简短表达方法:a != nil ? a! : b上述代码使用了三目运算符。当可选类型a的值不为空时,进行强制解封(a!)访问a中值,反之当a...转载 2018-10-22 17:20:35 · 553 阅读 · 0 评论 -
安装、升级Homebrew遇到Permission denied
今天更新Carthage,需要用到brew upgrade carthage但是遇到了由于权限问题,没成功,还以为是brew版本太低,就删除重装了Homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"但是试了好多次都出现下...原创 2018-10-19 14:47:00 · 3217 阅读 · 0 评论 -
iOS 讯飞语音之语音听写 录音的实现
引入库第一步 获取appidappid是第三方应用集成讯飞开放平台SDK的身份标识,SDK静态库和appid是绑定的,每款应用必须保持唯一,否则会出现10407错误码。appid在开放平台申请应用时可以获得,下载SDK后可从SDK中sample文件夹的Demo工程里找到(例如: /sample/MSCDemo/MSCDemo/Definition.h 的APPID_VALUE)第二步 工程配置引入...原创 2018-06-25 11:31:26 · 2118 阅读 · 1 评论 -
iOS wkwebview 加载html
wkwebview的优势1.交互更方便2.更低的内存占用3.高达60fps的滚动刷新率以及内置手势4.支持更多的HTML5特性5.基于webkit,支持Nitro JavaScript引擎6.提供常用的属性,如加载网页进度的属性estimatedProgresswkwebview的使用首先需要引入头文件#import <WebKit/WebKit.h>js调用oc配置configura...原创 2018-06-01 10:50:23 · 4318 阅读 · 0 评论 -
控制wkwebview的缩放
有的时候需求所需,不允许wkwebview页面手指捏合放大和缩小,控制wkwebview页面的放大和缩小有两种方法第一种设置webview.scrollview.delegage = self;_webView.scrollView.delegate = self;添加- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scroll...原创 2018-06-21 10:02:30 · 6157 阅读 · 0 评论 -
iOS AR 高通Vuforia —— 更换teapot模型
接入高通AR之后不管识别什么都是teapot茶壶模型,就试着换了一个第一步 h文件 在https://free3d.com/3d-models/中下载一个免费的3D模型,然后把obj2opengl.pl文件和下载的obj文件放到同一个目录下,用终端,cd到该目录,在终端中输入:perl obj2opengl.pl obj文件名.obj,得到.h文件第二步 把得到的h文件引入自己的项目...原创 2018-04-28 15:12:02 · 548 阅读 · 0 评论 -
iOS AR 高通Vuforia —— 获取摄像头帧图片
最近有一个获取Vuforia 框架下摄像头的帧图片的需求就研究了一下,其实官方是有相关API的,里面有java和c++两种语言https://library.vuforia.com/articles/Solution/Working-with-the-Camera#How-To-Access-the-Camera-Image-in-Native(有一点不好的是,官方给的地址会变,以前的版本和现在的...原创 2018-04-28 14:15:10 · 1148 阅读 · 0 评论 -
iOS copy和mutablecopy
就单纯的自己定义的类来说,copy和mutablecopy,与浅拷贝和深拷贝没有什么关系,关键是自己怎么实现NSCopying和NSMutableCopying这两个协议,如果协议实现的的时候只是拷贝指针,那就是浅拷贝,如果又申请一块内存并且把内容复制,那就是深拷贝,但是对于系统自带的容器类和NSString就要另外分了,因为协议的实现我们是看不到的,所以只能测试NSString首先测试N...原创 2018-05-11 16:37:30 · 544 阅读 · 0 评论 -
iOS 多语言RTL 方向布局
在做国际化适配的时候,有时候会遇到一些坑,大部分国家的书写以及排列习惯都是从左往右,是LTR方向布局,而对于一些阿拉伯国家,文字的书写以及展示的顺序都是从右往左方向的。 做个实验,建一个简单的工程,并在英文环境下运行结果:把模拟器改成阿拉伯语环境下再次运行:...原创 2018-05-17 15:58:49 · 4071 阅读 · 0 评论 -
iOS 并行队列、串行队列和线程
在开发过程中经常用到队列和线程结合使用,给队列中添加任务有四种使用方法:串行队列中执行同步任务、串行队列中执行异步任务、并行队列中执行同步任务、并行队列中执行异步任务,还有主队列,下面先说下主队列主队列主队列:专门负责调度主线程度的任务,没有办法开辟新的线程。所以,在主队列下的任务不管是异步任务还是同步任务都不会开辟线程,任务只会在主线程顺序执行。主队列异步任务主队列中放入异步任务,不是马上执行,...原创 2018-05-10 14:34:08 · 3549 阅读 · 0 评论 -
清除mac中的垃圾文件
清除mac中的垃圾文件最近工作用mac要升级最新系统,但是内存不够,打开关于本机发现系统居然占用了200多G的空间(已经清掉了50个G了)但是系统中的东西是想要找出是哪一块占用大量内存是比较麻烦的事情,刚开始使用终端查看内存占用情况du -sh * (只能查看有权限访问的)可以下载一个磁盘工具来扫描磁盘的使用情况,omnidisksweeper也是只能扫原创 2018-02-06 11:38:49 · 1943 阅读 · 0 评论 -
ios 中scrollview的 bounce属性与view中的clipsTobounds属性
一:scrollview的 bounce属性当scrollview滚动到边界时,再继续滚动会有个反弹的效果,scrollview里有bounce属性,当设置为yes时,可以反弹,设置为NO时不能反弹,请问,能不能使得它只有一个边界能反弹呢,这个作用可以用来实现在一个scrollview里添加tableview与scrollview可以连续滑动,也就是,当table滑动到底时scrollview原创 2015-01-05 11:09:16 · 9647 阅读 · 0 评论 -
ios中如何将一串数字传化成时间
时间和时间戳相互转换一、把数字转化成时间如下:NSString*time = @"1329038338"; NSDateFormatter *formatter = [[[NSDateFormatter alloc] init]autorelease]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [form原创 2013-12-25 13:43:36 · 2525 阅读 · 1 评论 -
ios 单元测试初识(XCTestCase)
今天偶尔碰到了单元测试的相关内容,就了解了一下,感觉比较好用:单元测试就是面试中经常问到的TDD(Test Driven Development),xcode4之前测试函数需自己创建,之后xcode5,对单元测试进行了升级,xcode4之前的用法详见:http://www.infoq.com/cn/articles/ios-unit-test-1xcode5之后的用法,特别是xcode原创 2014-12-19 19:36:24 · 2102 阅读 · 0 评论 -
ios (推送)之本地推送
iOS上有两种消息通知,一种是本地消息(Local Notification),一种是远程消息(Push Notification,也叫Remote Notification),设计这两种通知的目的都是为了提醒用户,现在有些什么新鲜的事情发生了,吸引用户重新打开应用。本地推送也可以通过服务器控制,比如说如果有新消息了,推送消息,但是,前提是程序必须是打开的,而远程推送,是通过苹果APNS服务器,推原创 2015-01-08 18:45:49 · 1779 阅读 · 0 评论 -
ios 数据持久化之magical record(基于coredata)
//gcd //以下是异步执行,如果是同步的话,会另外开辟一个栈,然会把队列都放里面,按照顺序执行,如果发生阻塞也与主线程无关 //后台执行// dispatch_get_global_queue(0, 0);//第一个参数是优先级,第二个参数是系统保留参数 dispatch_async(dispatch_get_global_queue(0,0), ^原创 2015-01-06 20:00:33 · 1419 阅读 · 0 评论 -
关于iOS中如何给字体加粗的问题总结
第一种方法 labelname.font = [UIFontboldSystemFontOfSize:15.0];这种方法可能导致个别字体加粗不成功,用过这个之后就不要再用labelname.font = [UIFontfontWithName:@"Helvetica-Bold" size:15];第二种方法labelname.font = [原创 2014-01-20 15:35:36 · 8073 阅读 · 0 评论 -
NSString和NSDate的相互转化
需要用到NSDateFormatter这个类。1、字符串转换为日期[plain]NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象 [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,要注意转载 2013-12-25 15:11:31 · 1203 阅读 · 0 评论 -
Apple Mach-O Linker Error 错误
Apple Mach-O Linker Error显示的错误的信息为:linker command failed with exit code 1 (use -v to see invocation)刚开始还以为是mac本的网络出现了错误了呢后来翻阅了一下资料,原来是因为两个子工程中存在同名类造成的连接错误。我发生的错误就是因为在两个。m文件中都原创 2013-12-20 16:29:02 · 1595 阅读 · 0 评论 -
ios7 对 scrollview做的一些改变(或者说是bug)
1 在一个viewcontroller中用到了scrollview和tableview但是先加的是tableview,并且创建完成之后加的,是所有控件里第一个加在view上的,就出现了如下的效果如果不是第一个加的,就是下边的效果2 当一个view 中有两个scrollview时,先加入那个那个就会出现第一张图的效果,而且大部分控件的坐标和i原创 2013-12-18 17:16:04 · 1316 阅读 · 0 评论 -
给UIImageview 添加边框 或者设置成圆角
//设置layer CALayer *layer=[backView layer]; //是否设置边框以及是否可见 [layer setMasksToBounds:YES]; //设置边框圆角的弧度 [layer setCornerRadius:10.0]; //设置边框线的宽 // [转载 2014-01-02 14:41:30 · 1135 阅读 · 0 评论 -
ios网络开发 同步下载和异步下载
一、同步下载(交互不好,容易出现卡死现象,一般下载数据较小或有特定需求才使用)。 发送同步请求后,程序将停止用户交互,直到服务器返回数据完成后,才进行下一步的操作。 步骤:1.创建NSURL NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com/"];2.通过URL创建NSURLR转载 2013-12-18 13:37:09 · 912 阅读 · 0 评论 -
iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具
http://www.cocoachina.com/newbie/basic/2013/0402/5926.html转载 2013-12-31 16:35:16 · 839 阅读 · 0 评论 -
iOS 自定义tabbar
建议先参考http://www.th7.cn/Program/IOS/201306/141129.shtml自己建一个类继承自uitabbarcontroller在类里实现- (void)viewDidLoad{ [superviewDidLoad]; NSMutableArray*arr = [NSMutableArrayarrayWith原创 2013-12-16 15:01:42 · 1764 阅读 · 0 评论