网络劫持一般有两种情况,一种是DNS劫持,另一种是HTTP劫持。 从表现上区分这两种劫持非常简单。 如果是DNS劫持,你输入的网址是google.com,然后出来的页面是百度。 如果是HTTP劫持,你打开了google.…
标签:objective-c
Block原理分析详解
1 基本说明 Block一直是OC的一个重点、难点、黑科技。Block在日常项目中经常使用,他的实现方式和一般的oc代码不一样。同时也很容易出现使用不慎的情况。我们知道OC的本质是C语言+runtime。runtime中…
图标右上角的数字小圆圈 如图 在tabBarController中设置
//图标右上角内容 self.tabBarItem.badgeValue=@"5";运行效果:
iOS有些项目模块不需要(MJRefresh)移除后有一块空白 解决方法
要先结束刷新 在移除既不会出现有一大块空白了 [self.tableView headerEndRefreshing]; [self.tableView footerEndRefreshing]; [self.table…
AppDelegate.m 生命周期
AppDelegate.m // // AppDelegate.m // FirstIOS // // Created by MaTsonga on 14-2-23. // Copyright (c) 2014年 MaT…
ios 打包上传Appstore 时报的错误 90101 90149
MD上传App Store 全是错误 弄了两个小时才把错误解决 错误如下 英语不好只能借助有道翻译! Archive报90101主要是你的项目以前适配过iPad ,但在新的项目只适配iPhone 所以才报的错 需要像下图…
针尖上带着脚镣跳舞的widget
自从iOS 10苹果给widget做了一次大改版后,很多人都开发了自己的widget。网上也有很多教程,来告诉你怎么快速开发一个widget。我的这篇文章也不会重复那些简单的创建extension添加证书之类的东西。我们…
从@property说起(四)深入成员变量
之前的三篇文章都讲的是interface和setter/getter,这一篇就讲一下ivar。 什么是成员变量 @interface MyViewController :UIViewController { NSStri…
Swift:可变参数
在Swift中,命名一个方法参数的时候,如果有多个特定类型的参数,可以直接使用可变参数(Variadic Parameters)。官网文档链接 使用可变参数,其实很简单。就是在参数类型加上…。比如Int…。实际上,方法内…
基于原生的移动跨平台研究和实践
基于原生主要是针对基于webview+h5比较来说的,基于H5的我不想再讨论了,我想尝试的是从UI到功能都是原生,而不是用H5模拟的所谓原生体验。 背景 我们从开发角度来考虑,但凡想从事长远的开发工作,都有自己的技术积累…
从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么
@property (nonatomic, weak) id obj; 先看下面一段代码 #import <Foundation/Foundation.h> @interface TestClass : NS…
从@property说起(一)开题篇
什么是 @property @property可以说是每一个iOS开发者最常用的一句代码,甚至没有之一。但是,在上古的Xcode 4.4时代之前,事情并不是这个样子的。当时的iOS开发者,每当需要一个属性的时候。总是需要…