ios代理

Java基础面试知识点总结

纵然是瞬间 提交于 2020-01-30 02:28:02
本文主要是我最近复习Java基础原理过程中写的Java基础学习总结。Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层实现原理。 纸上得来终觉浅,绝知此事要躬行。笔者之前对每部分的内容 对做了比较深入的学习以及代码实现,基本上比较全面地讲述了每一个Java基础知识点,当然可能有些遗漏和错误,还请读者指正。 更多关于Java后端学习的内容请到我的CSDN博客上查看: https://blog.csdn.net/a724888 Java基础学习总结 每部分内容会重点写一些常见知识点,方便复习和记忆,但是并不是全部内容,详细的内容请参见具体的文章地址。 面向对象三大特性 继承:一般类只能单继承,内部类实现多继承,接口可以多继承 封装:访问权限控制public > protected > 包 > private 内部类也是一种封装 多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪个方法(静态分派)。 运行时多态,体现在同名函数通过不同参数实现多种方法(动态分派)。 基本数据类型 基本类型位数,自动装箱,常量池 例如byte类型是1byte也就是8位,可以表示的数字是-128到127,因为还有一个0,加起来一共是256,也就是2的八次方。 32位和64位机器的int是4个字节也就是32位

iOS网络请求 添加全局代理 NSURLSessionConfiguration 解决方案

拥有回忆 提交于 2020-01-13 18:10:11
1、最近做项目、文件存储服务器是用的亚马逊的、如果直接访问、下载其资源速度很慢、所以需要在网络请求的时候添加一个代理、加速网络访问 2、代理服务器是一个HTTPS 的一个服务器 3、思路、解决方案、利用运行时机制(添加分类NSURLSession+Change)针对 NSURLSession 初始化添加代理对所有的网络请求进行拦截处理 #import "NSURLSession+Change.h" @implementation NSURLSession (Change) +(void)load{ Method oldMethod = class_getClassMethod(self, @selector(sessionWithConfiguration:delegate:delegateQueue:)); Method newMethod = class_getClassMethod(self, @selector(newSessionWithConfiguration:delegate:NSURLSessiondelegateQueue:)); Method oldMethod1 = class_getClassMethod(self, @selector(sessionWithConfiguration:)); Method newMethod1 = class

委托、通知传值的用法与区别

放肆的年华 提交于 2020-01-02 20:33:29
低耦合性是良好程序的特性。低耦合性程序可读性和可维护性比较好。Cocoa中的委托、通知功能可以使低耦合性更易实现,下面结合demo说明如何使用委托、通知进行传值,及委托与通知的区别。 1. 委托传值 委托传值在反向传值中使用。使用委托可以让委托和委托对象之间的关系变得清晰,特别是在委托的方法必须实现时。 委托传值步骤如下: 1.1 在 ChildViewController.h 声明协议,协议内方法默认必须实现。如果想选择实现,在方法前用 @optional 标志出来。 #import <UIKit/UIKit.h> @protocol ChildVCDelegate <NSObject> - (void)didReceiveText:(NSString *)string; @optional - (void)receiveTextFailedWithError:(NSError *)error; @end 1.2 在 ChildViewController.h 接口部分创建一个 ChildVCDelegate 类型的实例变量。此时的特性应该使用 weak ,否则会造成循环引用。 #import <UIKit/UIKit.h> @protocol ChildVCDelegate <NSObject> - (void)didReceiveText:(NSString *)string

AJ学IOS 之微博项目实战(6)导航控制器NavigationController 的滑动回退功能实现

大兔子大兔子 提交于 2019-12-28 04:59:08
AJ分享,必须精品 一:效果 第二篇里面写了怎样自定义navigation实现自定义的导航控制器左右按钮样式,但是当我们自己实现后,系统自带的向右边滑动来实现回退的功能就不能用了。 这里主要实现滑动回退功能 。 二:代码实现思路 首先 在 NYNavigationController.m中放一个popDelegate来放置要更改的手势代理对象 @interface NYNavigationController ()<UINavigationControllerDelegate> @property (nonatomic, strong) id popDelegate; @end 重写 UINavigationControllerDelegate 的方法 - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated viewDidLoad中设置代理方法,并且预先设置手势代理用来还原 - (void)viewDidLoad { [super viewDidLoad]; //记住手势代理 用来还原 _popDelegate = self

In-App Purchases功能ECPurchase-ios

心已入冬 提交于 2019-12-19 13:00:51
在程序中,我们可以使用IOS内置库StoreKit.framework里提供的Api实现In-App Purchases产品的购买功能。但如果你不想根据文档再自己写purchase功能,那么有一个第三方的库ECPurchase会适合你。 ECPurchase库封装了purchase的内在逻辑,并且提供了几种验证方式(用于防止iap破解),调用简单方便。ECPurchase库可在文章后面我提供的例子里获得。ECPurchase提供了下面的接口需要开发者自己完成: 1.在App Delegate中添加Observer [[ECPurchase shared] addTransactionObserver]; 2.设置ECPurchase的product delegate(产品列表代理),transaction delegate(购买结果代理),验证方式 [[ECPurchase shared] setProductDelegate:self]; [[ECPurchase shared] setTransactionDelegate:self]; [[ECPurchase shared] setVerifyRecepitMode:ECVerifyRecepitModeiPhone]; 3.请求商品列表 [[ECPurchase shared] requestProductData

iOS开发之UIScrollView代理

给你一囗甜甜゛ 提交于 2019-12-06 13:49:40
想在UIScrollView 正在滚动 或 滚动到某个位置 又或者 停止滚动 时做一些特定的操作,那么就需要监听 UIScrollView的整个滚动过程, 而 当UIScrollView发生一系列的滚动操作时,会自动通知它的代理(delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动情况。 也就是说,要想监听UIScrollView的滚动过程,就必须先给UIScrollView设置一个代理对象,然后通过代理得知UIScrollView的滚动过程。 看UIScrollView的代码,会发现她有一个属性delagate UIScrollView将delegate需要实现的方法都定义在了UIScrollViewDelegate协议中,因此要想成为UIScrollView的delegate(可以是任意类型的对象),必须遵守UIScrollViewDelegate协议,然后实现协议中相应的方法,就可以监听UIScrollView的滚动过程了。 #import "ViewController.h" //在类扩展中遵守协议 @interface ViewController () <UIScrollViewDelegate> @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; @end

iOS之集成GoogleMap定位、搜索注意事项

房东的猫 提交于 2019-12-01 22:42:50
简介: 最近花了些时间看了GoogleMap官方文件并集成到国际版app中,网上关于GoogleMap for iOS的讲解相对Android来说少一点,比较有帮助的几乎全是英文文档。下面是我开发过程中遇到的坑、以及采用的解决方法。 集成GoogleMap步骤: 1、Cocoapods导入 pod 'GoogleMaps', '~> 2.7.0' #谷歌地图 pod 'GooglePlaces', '= 2.7.0' pod 'GooglePlacePicker', '= 2.7.0' 2、获取API密匙(前提是已经在GoogleMapSDK中创建好自己的应用) 3、配置plist文件搭建定位环境 4、调用代理方法实现需求 tips:pod 'GoogleMaps'、pod 'GooglePlaces'、pod 'GooglePlacePicker'这三个框架。(GoogleMaps:显示基本的定位功能;GooglePlaces:实现搜索功能,官方文档叫做地点自动完成;GooglePlacePicker:是实现获取某个POI的的详细信息,比如名字、详细地址、路线等) 景点(POI)包括公园、学校和政府大楼,等等。 另外,如果地图类型为 kGMSTypeNormal,商家景点默认将显示在地图上。 商家景点表示商店、餐馆和酒店之类的商家。 按照 Google Places API

设计模式(python描述)

前提是你 提交于 2019-11-29 15:05:18
目录 一、创建型设计模式 二、结构型设计模式 三、行为型设计模式 一、创建型设计模式 1、简单工厂模式 内容: 不直接向高层类暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。 角色: 工厂角色(Creator) 抽象产品角色(Product) 具体产品角色(Concrete Product) python示例: from abc import ABCMeta, abstractmethod class Payment(metaclass=ABCMeta): """ 抽象产品角色 # 抽象类,必须子类必须实现这个方法。 """ @abstractmethod def pay(self, money): pass class Alipay(Payment): """ 具体产品角色 """ def __init__(self, huabei=False): self.huabei = huabei def pay(self, money): if slelf.huabei: print("花呗支付%d元" % money) else: print("支付宝支付%d元" % money) class WechatPay(Payment): def pay(self, money): print("微信支付%d元" % money) class PaymentFactory