iOS
Hi_Aaron
do
读书工作生活
while(1)
展开
-
使用 Charles 解决部分App无法上网的问题(SSL Pinning)
设置好 Charles 代理之后发现打开目标 App debug 的时候弹窗“网络异常”提醒,测试 Safari 正常和其他 App 发现大部分都可以打开。Google之后发现这是因为该 App 使用了SSL Pinning 的原因。SSL Pinning 意味着 App 拷贝了一份服务器的公钥在本地,在进行网络连接的时候使用了本地的公钥进行加密了。由于 Charles 的密钥无法匹配导致拒接...原创 2019-10-22 11:24:04 · 8324 阅读 · 1 评论 -
ios之点语法
第一个object c 程序 首先新建一个项目,“create a new Xcode project"-"OS X下的Application"-"Command Line Tool" ,命名为“点语法”,不要勾选“Use Automatic Reference Counting”这个选项(ARC是Xcode的内存自动管理机制,刚开始学的时候先自己管理内存,以后熟悉了再勾选),,最后再新原创 2013-08-25 09:19:00 · 8605 阅读 · 0 评论 -
ios构造函数
首先新建一个基于命令行的project,命名为“构造函数”,再新建一个Studnet类(怎样新建看前一篇),接下来是代码的编写,需要注意和说明的都写在注释里了。Student.h//// Student.h// 构造方法//// Created by Rio.King on 13-8-25.// Copyright (c) 2013年 Rio.King. All righ原创 2013-08-25 10:38:56 · 7076 阅读 · 0 评论 -
ios的@property属性和@synthesize属性
当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,,所以Xcode提供了@property和@synthesize属性,@property用在 .h 头文件中用作声明,@synthesize用在.m 文件中用于实现。如下,新建一个基于“Command Line Tool”的项目,名为“property”,再新建一个Student类,传统的写法原创 2013-08-25 22:56:31 · 23649 阅读 · 0 评论 -
ios内存管理1-retain和release的简单使用
内存管理 范围:任何继承了NSObject 的对象,对基本数据类型无效 原理:每个对象内部都保存了一个与之相关联的整数,称为引用计数器(auto reference count)每当使用 alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain消息(即调用retain方法),可以使引用计数器值+1给对象原创 2013-08-26 11:00:54 · 12061 阅读 · 0 评论 -
ios的@class属性
原创 2013-08-27 00:32:31 · 1412 阅读 · 0 评论 -
ios的@property属性
对于BOOL类型,,@property还有另外一个用法//getter 是用来指定get 方法的方法名的@property(nonatimic, getter = isRich) BOOL rich;原创 2013-08-27 00:37:40 · 927 阅读 · 0 评论 -
内存管理4-@autorelease
原创 2013-08-27 09:21:01 · 783 阅读 · 0 评论 -
ios内存管理2-对象之间的内存管理
同之前一样,新建一个基于命令行的工程,在新建一个Student类和一个Book类编写如下代码:Student.h//// Student.h// 内存管理2-对象之间的内存管理//// Created by Rio.King on 13-8-26.// Copyright (c) 2013年 Rio.King. All rights reserved.//#im原创 2013-08-26 22:07:50 · 2791 阅读 · 0 评论 -
ios的category
原创 2013-08-27 10:06:18 · 1015 阅读 · 0 评论 -
ios之NSString的用法
关于NSString的用法,,具体见以下代码,该注释的地方都已经注释了。//// main.m// NSString//// Created by mj on 13-4-5.// Copyright (c) 2013年 itcast. All rights reserved.//#import #pragma mark NSString的创建void string原创 2013-08-28 20:58:18 · 2604 阅读 · 0 评论 -
ios的NSMutableString用法
详见代码://// main.m// Foundation5-NSMutableString//// Created by mj on 13-4-5.// Copyright (c) 2013年 itcast. All rights reserved.//#import #pragma mark 可变字符串的创建void stringCreate() {原创 2013-08-29 17:08:36 · 9793 阅读 · 0 评论 -
Tab Bar Controller(选项卡)的使用
下面记一下怎样通过代码的方式为选项卡添加视图。1、创建一个基于Empty Application的项目2、创建两个新类,基类选择UIViewController,勾选With XIB for user interface分别命名为"OneController'和"TwoController",3、分别更改OneController.xib和TwoController.xib文件的vie原创 2013-09-05 22:55:54 · 10156 阅读 · 0 评论 -
ios的NSArray排序
NSArray 排序的方法有很多中,,怕自己忘记了就把代码贴这里,方便日后查找。Student.h//// Student.h// Foundation7-NSArray2//// Created by mj on 13-4-5.// Copyright (c) 2013年 itcast. All rights reserved.//#import @class原创 2013-08-30 16:29:21 · 4414 阅读 · 0 评论 -
导航控制器Navigation实现页面跳转
新建一个基于Singal View Application的项目再新建一个Object-C class 的类,类名为“oneViewController",子类为”UIViewController“,,勾选”with XIB for user interface“在ViewController.xib文件中拖入一个button按钮,并设置一个按钮点击关联事件,如下图:编写按钮点击事件的代码,注意要原创 2013-09-09 15:44:58 · 2779 阅读 · 0 评论 -
字符串拆分
作用:将一段文本根据url拆分出几个字符串存放在一个数组中,比如:xxxhttp://abc.com xxxxxx 拆分成xxx;http://abc.com;xxxxxx;3个字符串存放在数组中 参数:source,源文本 返回:拆分的子字符串 - (NSMutableArray *)splitStringByUrl:(NSString *)source;转载 2013-09-10 12:17:41 · 1308 阅读 · 0 评论 -
数组以及字符串拼接与分割
1.OC的数组成员是任意的对象指针 与C中的链表结构类似(以nil结尾) 一切的数组操作不能越界OC的数组分为不可变数组 NSArray 可变数组 NSMutableArrayNSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil]; NSLog(@"%@",[转载 2013-09-10 12:15:00 · 2435 阅读 · 0 评论 -
自定义cell
新建一个基类为“UITableViewController"的类。新建一个empty的.xib文件,拖入一个 table view cell到.xib文件中,再拖入自己想要的一些空间在步骤1新建的类中修改如下代码即可(注释掉一句代码,添加一句代码),运行就可以看到效果了。- (UITableViewCell *)tableView:(UITableView *)tableView cellForR原创 2013-09-11 14:41:48 · 898 阅读 · 0 评论 -
将NavigationBar设置透明
将NavigationBar设置透明(仅将指定视图控制器进行透明处理),步骤如下:1.在视图控制器的头文件中实现UINavigationControllerDelegate,例如:@interface PicturePreviewViewController : UIViewControllerUINavigationControllerDelegate>2.在实现类中加入这个代理转载 2013-09-12 09:07:32 · 22539 阅读 · 1 评论 -
解析xml
新建一个Singal View Application 的工程,并在.xib文件中拖入如下控件。为每个控件都关联一个outlet,@property (retain, nonatomic) IBOutlet UILabel *_todayInfo;@property (retain, nonatomic) IBOutlet UILabel *_todayTemp;@property原创 2013-09-08 23:58:04 · 4601 阅读 · 0 评论 -
ios的延迟执行方法
1.最直接的方法performSelector:withObject:afterDelay:这种方法的缺点:每次要为延时写一个方法 2.使用类别,用BOLCK执行[代码]c#/cpp/oc代码:01@implementation NSObject (PerformBlockAfterDelay)转载 2013-09-12 16:46:45 · 10400 阅读 · 0 评论 -
图片翻转
1、引入两个framework(Builds Phases->Link Binary With Libraries)原创 2013-09-13 21:26:34 · 1456 阅读 · 0 评论 -
ios 中生成随机数
ios 中生成随机数ios 有如下三种随机数方法:1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. srandom(time(0)); int i = random() % 5;3. int i = arc4ran转载 2013-09-15 23:29:55 · 1206 阅读 · 0 评论 -
ios中设置N秒后执行一个函数
设置N秒后执行一个函数,最常用的是设置一个定时器,今天刚看到有这样一个函数,感觉还是比较简单实用的,就先记下来,免得忘记了。5秒后执行pushSecondController这个函数[self performSelector:@selector(pushSecondController) withObject:nil afterDelay:5.0f];比如:在第一个原创 2013-10-02 11:44:44 · 16410 阅读 · 0 评论 -
在 Table View 中显示一个刷新控件
1.问题 你希望在 table view 的顶部显示一个漂亮的刷新控件,让用户可以直观的进行下拉 table view 以进行内容的更新。刷新控件的两个不同状态如下图 所示: 刷新控件的两个不同状态 2。方案创建一个 table view 控制器(4.13小节介绍过),然后将其 refreshControl属性设置为一个新的 UIR原创 2013-10-03 18:26:03 · 2612 阅读 · 0 评论 -
响应者对象
响应者对象:响应者对象是一个能接收并处理时间的对象,UIResponser 是所有响应者对象的基类该基类定义了一系列事件处理的相关方法,如触摸事件,button点击事件等UIApplication,UIView,UIViewController 都是继承自 UIResponser,所有这些类的实例都是响应者对象如果 hit-test 视图不处理收到的事件消息,UIKit 则将事件转发到原创 2013-09-18 16:29:45 · 1766 阅读 · 0 评论 -
退出线程和计数器
退出线程和计数器想要做的事儿:停止线程或计数器的运行,或者防止再次触发。解决方案:对于计时器,使用 NSTimer 的实例方法 invalidate。而对于线程,使用 cancel 方法。在线程中避免使用 exit 方法,因为当调用了 exit 之后,线程就没有机会做清理工作,当你的应用程序结束时,会发生资源泄漏。 NSThread *thread = /* Get the r原创 2013-10-04 23:11:32 · 1384 阅读 · 0 评论 -
ios创建并发线程
创建并发线程 主线程一般都是处理UI界面及用户交互的事儿的。其他的事一般就要另外的线程去处理,如下载,计算等。。。现在先简单创建3个线程,分别打印出1-1000,,为了方便,线程3就放在主线程中执行。- (void) firstCounter{ @autoreleasepool { NSUInteger counter = 0; for (counter = 0;原创 2013-10-04 22:46:36 · 3330 阅读 · 0 评论 -
数据持久化之.plist文件
应用程序包:包含了所有的资源文件和可执行文件Document:保存应用运行时生成的需要持久化的数据,iTunes 同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录tmp:保存应用运行时所需的临时数据,使用完毕后再将相应地文件从该目录删除,应用没有运行时,系统也可能会清除该目录下得所有文件。iTunes 同步设备时不会备份该目录。Library / Caches:保存应用运行时生成的需原创 2013-09-22 10:09:20 · 3775 阅读 · 0 评论 -
使用storyboard实现页面跳转,简单的数据传递
由于最近才接触到IOS,苹果已经建议storyboard来搭建所有界面了,于是我也追随时尚,直接开始使用storyboard。(不料在涉及到页面跳转的时候,遇到的问题是:点击后没有任何反应)众所周知,在storyboard中,界面的跳转是通过segue来实现的,利用它,省去了方法内写入跳转的代码。一 视图跳转《StoryBoard下的视图跳转》我们知道:segu转载 2013-10-07 20:21:44 · 1806 阅读 · 0 评论 -
iOS高效开发必备的10款Objective-C类库
MBProgressHUD(进展指示符库) 地址:https://github.com/jdg/MBProgressHUD 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore。而 MBProgressHUD提供了一个替代方案,而且在用户角度上,实现的效果根本看不出和官方程序有什么差别。同转载 2013-10-07 21:16:49 · 1658 阅读 · 0 评论 -
数据持久化之NSKeyedArchiver
基本的数据类型如NSString、NSDictionary、NSArray、NSData、NSNumber等可以用属性列表的方法持久化到.plist 文件中,但如果是一些自定义的类的话,属性列表的方法就不管用了。archiver 方法可以做到。编码如下: 首先新建一个person类,定义它的三个属性,如下://// person.h// 数据持久化之arch原创 2013-09-22 13:36:21 · 20372 阅读 · 1 评论 -
数据持久化之preference
preference(偏好设置)是数据持久化的几个方法中最简单的一个,常用于保存少量数据代码如下://// ViewController.m// preference(利用偏好设置保存数据)//// Created by Rio.King on 13-9-22.// Copyright (c) 2013年 Rio.King. All rights reserved.原创 2013-09-22 16:40:47 · 3202 阅读 · 0 评论 -
点击屏幕空白处让键盘消失的方法
创建一个基于Singal View Application 的工程在.xib文件中拖入一个Text Field控件和一个Round Rect Button 控件关键的一步, 回到属性面板框,,将“Custom Class"的类名UIView改为UIContro 手势原创 2013-09-12 19:59:37 · 4754 阅读 · 0 评论 -
用TPKeyboardAvoidingScrollView在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件
TPKeyboardAvoidingScrollView用于在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件。使用方法:将TPKeyboardAvoidingScrollView.h和TPKeyboardAvoidingScrollView.m add进工程中在需要用键盘自动上滚的controller的xib文原创 2013-09-24 12:26:20 · 8460 阅读 · 0 评论 -
使用GCD异步和同步执行任务
1.5 用GCD执行与UI相关的任务目的:为了并发你使用了GCD并且想知道与UI相关的APIs一起工作的最佳办法。讨论:UI相关的任务必须在主线程中执行,所以主队列是在GCD中执行UI任务的唯一候选对象。我们可以使用dispatch_get_main_queue 函数得到处理分派队列的句柄。这里有2中向主队列分派任务的方法,两者都是异步的,即使在任务没有执行的时候也让你的程原创 2013-10-10 08:52:13 · 22715 阅读 · 6 评论 -
tableView的中cell添加图像
在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ } 这个函数中添加以下代码://---display an image----- UIImage *image = [UIImage imageNamed:@"on原创 2013-09-27 16:50:22 · 1162 阅读 · 0 评论 -
关于ios中编译ffmpeg0.9.2库
很多朋友在问如何在ios中编译ffmpeg库,虽说网上的教程很多,但是大部分都说按其操作,最后编译总是不成功,正好我最近的项目要用到ffmpeg,所以就再次编译了,同时在这里记下,方便需要参考的朋友。先说一下本次编译的环境:mac os x 10.7.4xcode4.2.1ios5.0ffmpeg0.9.2(最新的为0.10.3,一般不喜欢用最新的,原因不说转载 2013-10-13 18:13:05 · 1319 阅读 · 0 评论 -
NSTimer的暂停和继续
可以用NSTimer设置访问函数的时间周期:countTime = [NSTimerscheduledTimerWithTimeInterval:(1.0/60.0) target:self selector:@selector(upd转载 2013-10-14 16:57:26 · 915 阅读 · 0 评论 -
读取Movies.plist文件并显示到table View中
新建一个Movies.plist文件关键代码:ViewController.h#import @interface ViewController : UIViewCon原创 2013-09-27 22:12:23 · 2281 阅读 · 0 评论