- 博客(221)
- 资源 (2)
- 收藏
- 关注
转载 iOS-OC中加载html5调用html方法和修改HTML5内容
1.利用webView控件加载本地html5或者网络上html52.设置控制器为webView的代理,遵守协议3.实现代理方法webViewDidFinishLoad:4.在代理方法中进行操作HTML5中的标签(CRUD-->增删改查)1.用类选择器或者id选择器或者标签选择器等选择要进行操作的标签2.把选择好的标签转换成字符串3.webView调用stringByEvaluatingJa
2016-05-06 16:00:45
1299
转载 iOS~block的使用
iOS中block比较常用,但是又和OC的语法显得有点格格不入,难于理解。以下是我个人初步的理解,供查阅。 1.block的声明 //声明一个blocktypedef NSString *(^WXYTestBlock)(NSString *name, int age);以上声明了一个名字叫做WXYTestBlock的block,参数为一个
2016-01-12 17:58:07
582
转载 MVC的形象比喻
mvc 比如去饭馆吃饭,view 就是菜单controller 就是服务员model 就是厨师(处理业务逻辑)和材料(实体类)1.你带着你女朋友过去了,看这菜单,点菜,你的点菜请求(request)发给 服务员2.服务员起中间协调作用,他告诉厨师要干什么。3.厨师来炒菜(一般会封装一些处理业务的方法)。是服务员来调用这些方法4.服务员把超好的菜端给你(r
2016-01-12 15:17:25
1388
转载 category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
属性 其实就是get/set 方法。我们可以使用 objc_setAssociatedObject/objc_getAssociatedObject 实现 动态向类中添加 方法@interface NSObject (CategoryWithProperty)@property (nonatomic, strong) NSObject *property;@end@implem
2016-01-07 22:49:10
488
转载 isKindOfClass, isMemberOfClass的区别
这两个方法常常会困惑我们,它们有什么区别呢?定义首先,我们来看看它们的定义。isKindOfClass: 官方解释:Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that i
2016-01-05 18:03:53
386
转载 iOS 万能跳转界面方法 (runtime实用篇一)
在开发项目中,会有这样变态的需求:推送:根据服务端推送过来的数据规则,跳转到对应的控制器feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)思考:wocao!这变态的需求,要拒绝他吗?switch判断呗,考虑所有跳转的因素?这
2016-01-05 17:32:15
425
转载 Objective-C中的instancetype和id关键字
一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢?二、关联返回类型(related result types)根据Cocoa的命名规则,满足下述规则的方法:1、类方法
2016-01-05 17:05:40
285
转载 轻松学习之 IMP指针的作用
可能大家一直看到有许多朋友在Runtime相关文章中介绍IMP指针的概念,那么IMP究竟有什么实际作用呢?让我们先从一个函数看起来。Method Swizzling如果对Runtime有一定了解的话,一定听说过或者用过这个函数:1void method_exchangeImplementations(Method m1, Me
2016-01-05 15:56:56
325
转载 在建好的项目中加入CoreData
这几天在做一个ios的小项目,项目中需要对数据进行基本的增删改查操作。于是就想用一把CoreData。但在创建项目初期,没有包含进CoreData。于是就在已建好的项目中加入CoreData。由于第一次用CoreData,各方面还不是很熟悉,在网上爬文,找到了一篇关于这方面的文章(http://www.iteye.com/topic/1017633)。于是,自己在这篇文章的基础上经过一天的研究,特
2016-01-04 15:07:14
398
转载 stretchableImageWithLeftCapWidth
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。根据设
2015-12-30 12:26:38
373
转载 Swift - 使用NSNotificationCenter发送通知,接收通知
标签:1,通知(NSNotification)介绍这里所说的通知不是指发给用户看的通知消息,而是系统内部进行消息传递的通知。要介绍通知之前,我们需要先了解什么是观察者模式。观察者模式 (Observer):指一个对象在状态变化的时候会通知另一个对象。参与者并不需要知道其他对象的具体是干什么的 。这是一种降低耦合度的设计。常见的使用方法是观察者注册监听,然后在状态改变的时候,
2015-12-25 16:54:29
1365
转载 iOS开发笔记--连续跳转上层页面
最近在工作中运用到了多次页面跳转,比如先从A界面跳到B界面,再从B界面跳到C界面,最后需要从C界面直接跳转到A界面,在这里我讲讲解直接从C界面跳转到A界面的方法。由于小弟技术比较菜,有讲解不好的地方清指教。在iOS开发中,我们通常用得最多的页面跳转方式就是通过NavigationBar的push和pop跳转方法,下面这种跳转方法也是基于NavigationBar的跳转方法。因为Naviga
2015-12-25 16:52:43
460
转载 iOS开发——UI篇Swift篇&UISegmentedControl
UISegmentedControl 1 override func viewDidLoad() { 2 super.viewDidLoad() 3 4 titleLabel.text = titleString 5 6 //先创建一个数组用于设置分段控件的标题
2015-12-20 16:13:41
850
原创 xib定义的tableviewcell宽度固定,无法适配屏幕
在的storyboard的tableview中使用了xib自定义的cell,但显示出来的宽度不能自适应屏幕。解决办法:1、在xib文件中,去掉使用AutoLayout。(否则步骤2不起作用)2、在cell里面重写layoutSubviews这个方法时,需要调用[super layoutSubviews]。在layoutSubviews方法中用代码去适配cell上各个部分frame。
2015-12-20 12:17:52
4246
原创 IBOutlet的weak和strong reference
默认的IBoutlet的属性设置为weak.简单的说,如果IBOutlet对象是nib/sb scene的拥有者(File’s owner)所持有的对象,那么很显然拥有者必须“拥有”对象的指针,因此属性应设置为strong。而其他的IBOutlet对象的属性需要设置为weak,因为拥有者并不需要“拥有”他们的指针。举例来说,UIViewController的view属性是strong,因为co
2015-12-20 12:07:16
581
原创 swift和storyborad环境下通过xib自定义TableViewCell
1、首先新建一个继承自TableViewCell的类,并且带上xib文件,例如把名字定义为FinanceMarketTableViewCell打开这个文件,我们会看到如下默认的初始化代码 override func awakeFromNib() { super.awakeFromNib() }2、调用的时候 //
2015-12-20 11:30:47
1315
转载 Swift 下开启warning提示方法
OC中可以通过#warning方法来提醒自己将来需要注意的地方,但是在目前Xcode版本中没有这样的功能产生黄色警告这时候就需要我们自己手动去让Xcode产生这个功能了。接下来就来介绍下如何开启这个功能在项目内部找到Build Phases,选择坐标的“+”号,如下图所示: 添加 New Run Script Phase,点击了之后就出现了下图的Run Script栏
2015-12-19 17:04:08
414
原创 怎样连续dismiss2个ViewController
我们在开发过程中经常会遇到这种情况,AViewController上面present 推入BViewController ,BViewController上面又present 推入CViewController,这时候却要直接dismiss到AViewController上面。其实很简单, 直接[self.presentingViewController.presentingViewC
2015-12-18 19:47:33
651
转载 iOS开发-使用Storyboard进行界面跳转及传值
前言:苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了。使用Storyboard去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能为我们节省大量的时间。我们还可以很直观地看出各个界面之间的关系,修改起来也很方便。将来如果遇到需要作修改的地方,我们只需要找到相对应的Storyboard就可以了,比起以前来说,快捷了不少。
2015-12-18 11:36:45
551
转载 assert 在iOS 中的作用
是很重要的手段,ASSERT( f )在Debug模式下,每次运行到这里后会计算括号中的表达式,如果表达式为0,则中断执行,弹出一个警告框,用户可选择“继续”,“重试”,“忽略”在Release模式下,这句语句不会被编译进代码。 ASSERT一般用于程序内部确认参数的正确性,即调用内部函数的时候,要由调用者保证参数的正确,而被调用函数内部,就可以通过ASSERT来检查参数是否满足要求。
2015-12-17 16:14:22
1208
转载 SELECTOR
@selector 是 objc 时代的一个关键字,它可以将一个方法转换并赋值给一个 SEL 类型,它的表现很类似一个动态的函数指针。在 objc 时 selector 非常常用,从设定 target-action,到自举询问是否响应某个方法,再到指定接受通知时需要调用的方法等等,都是由 selector 来负责的。在 objc 里生成一个 selector 的方法一般是这个样子的:-(v
2015-12-17 16:12:20
370
转载 STRING 还是 NSSTRING
既然像 String 这样的 Swift 的类型和 Foundation 的对应的类是可以无缝转换的,那么我们在使用和选择的时候,有没有什么需要特别注意的呢?简单来说,没有特别需要注意的,但是尽可能的话还是使用原生的 String 类型。原因有三。首先虽然 String 和 NSString 有着良好的互相转换的特性,但是现在 Cocoa 所有的 API 都接受和返回 St
2015-12-17 10:43:35
319
原创 swift语言环境下用storyboard载入页面
1、首先创建storyboard和类文件(**ViewController.swift)2、设置好class和storyboardID。3、代码部分如下:let iHomeStory:UIStoryboard =UIStoryboard(name: "Home", bundle: nil)let iFirstVC = iHomeStory.ins
2015-12-16 20:17:53
820
转载 [iOS]添加 All Exceptions 断点后, 每次运行都会在 main.m 中断的一种解决方法
在一定条件下, 添加 All Exceptions 断点后, 每次运行都会在 main.m 中断, 根据具体情况不同, 还会有连续中断数次的情况, 严重影响开发效率, 但又没有任何提示告诉你哪出现了错误, 该怎么解决.这个问题产生的原因之一就是在 info.plist 里面有项目中不存在的字体, 有多少个不存在的字体就会中断多少次, 相应的解决方法也明了了, 删除 info.plist 里
2015-12-11 11:32:23
372
转载 Objective-C的hook方案(一): Method Swizzling
Objective-C的hook方案(一): Method Swizzling在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Meth
2015-11-23 18:35:01
382
转载 Objective-C Runtime 运行时之四:Method Swizzling
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例如,我们想跟踪在
2015-11-23 18:33:33
314
转载 Objective-C Runtime 运行时之三:方法与消息
前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:1
2015-11-23 16:09:12
612
转载 Objective-C Runtime 运行时之二:成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为
2015-11-23 15:40:08
578
转载 Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作
2015-11-23 14:46:37
316
转载 被误解的MVC和被神化的MVVM
MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。 MVC 的概念最早出现在二十世纪八十年代的施乐帕克实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了这种软件设计模式。
2015-11-23 10:55:30
550
转载 在iOS 8中使用UIAlertController
iOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。还有,某些旧的UIKit控件也同样发生了许多变化,比如说Alert Views、Action Sheets、Po
2015-11-21 18:33:05
381
转载 iOS 原生二维码扫描(可限制扫描区域)
写这篇文章的主要原因不是展示如何使用 AVFoundation 来进行二维码扫描,更主要的是限制扫描二维码的范围。(因为默认的是全屏扫描)项目遇到扫描二维码的功能需求,这里我放弃了使用三方库,而采用了苹果原生的扫描。原生的好处就是扫描特别快效率特别高,但是遇到一个问题就是不知道怎么去限制扫描范围。还是先简单说一下怎么使用来进行二维码扫描吧。首先是要用到的几个类
2015-11-21 15:09:29
440
转载 [iOS]添加 All Exceptions 断点后, 每次运行都会在 main.m 中断的一种解决方法
在一定条件下, 添加 All Exceptions 断点后, 每次运行都会在 main.m 中断, 根据具体情况不同, 还会有连续中断数次的情况, 严重影响开发效率, 但又没有任何提示告诉你哪出现了错误, 该怎么解决.这个问题产生的原因之一就是在 info.plist 里面有项目中不存在的字体, 有多少个不存在的字体就会中断多少次, 相应的解决方法也明了了, 删除 info.plist 里
2015-11-21 14:43:33
2806
原创 在ios9下,使用afnetworking执行http请求(http://apitest.XXX.com/Login),但是一直返回的是error
在info.plist文件里面手动添加 NSAppTransportSecurity, NSAllowsArbitraryLoads,应该就可以了,参考图片 图片:nGw3j.png
2015-11-13 12:35:47
669
转载 向App Store上传二进制文件报错:ERROR ITMS-90049
上传appStore时,遇到错误,代码为ERROR ITMS-90049解决问题方式: 1. 在xcode左下角搜索info.plist 找到第三方的info.plist文件,如友盟中腾讯Api文件夹下的info.plist文件; 2. 找到Bundle version字段 ,添加项目对应的build号;3. 添加Bundle identifier 字段,并对应添加项目的Bun
2015-11-01 15:55:27
759
转载 XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
解决办法有: 1,用XCode 6.4的Product-》Archive,再提交到AppStore。 2,在Stackoverflow上也有相关的解决办法,就是把无用的CFBundle删除掉。 http://stackoverflow.com/questions/32622899/itms-90535-unable-to-publish-ios-app-with-latest-goog
2015-11-01 15:51:12
782
原创 xcode7的那些坑-“Your binary is not optimized for iPhone 5” (ITMS-90096) when submitting
用Xcode7向App Store提交二进制文件是,提示ERROR ITMS-90096:"You binary is not optimized for iPhone 5....".在工程里的Images.xcassets添加并设置LaunchImage对解决ERROR ITMS-90096根本不会起到任何作用,需要单独添加针对iPhone 5的载入图片。关键点有三项:1、图片的名称必须
2015-11-01 15:49:15
10265
3
转载 does not contain bitcode. You must rebuild it with
Xcode 7 运行项目报错:错误1. Undefined symbols for architecture armv7: "_compress2", referenced from: +[UMANDeflated deflatedDataPrefixedWith:level:source:] in libMobClickLibrary.a(UMDeflate
2015-10-23 14:40:50
630
转载 理解Bitcode:一种中间代码
今天试着用Xcode 7 beta 3在真机(iOS 8.3)上运行一下我们的工程,结果发现工程编译不过。看了下问题,报的是以下错误:1ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’ does not contain bitcod
2015-09-17 17:16:29
427
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人