- 博客(104)
- 资源 (3)
- 收藏
- 关注
原创 深度剖析UINavigationController.h
前言 这里是个人对UIKit - UINavigationController 的理解,如有瑕疵望指出//// UINavigationController.h// UIKit//// Copyright (c) 2007-2017 Apple Inc. All rights reserved.//#import <Foundation/Foundation...
2018-08-13 21:06:07
315
原创 深度剖析nullable、__nullable、_Nullable、_Nonnull、null_resettable
背景介绍 在 Swift 中,我们会使用 ? 和 ! 去显式声明一个对象或者方法的参数是optional 还是 non-optional ,而在 Objective-C 中则没有这一区分,这样就会带来一个问题:在 Swift 与Objective-C 混编时,Swift编译器并不知道一个 Objective-C 对象或者一个方法的参数到底是 optional 还是 non-optional...
2018-08-13 20:16:05
946
原创 NS_CLASS_AVAILABLE_IOS
描述// class weak import is not supported#define NS_CLASS_AVAILABLE(_mac, _ios)#define NS_CLASS_DEPRECATED(_mac, _macDep, _ios, _iosDep, ...)#endif#define NS_CLASS_AVAILABLE_IOS(_ios) NS_CLASS_...
2018-08-13 19:22:05
760
原创 UIKIT_EXTERN的基本理解
查看SDK源文件#ifdef __cplusplus#define UIKIT_EXTERN extern "C" __attribute__((visibility ("default")))#else#define UIKIT_EXTERN extern __attribute__((visibility ("default&
2018-08-13 17:04:38
1696
原创 iOS常用宏定义小结-持续更新
find in apple iOS SDK1.NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END
2018-08-13 16:40:32
321
原创 NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END
我们都知道在Swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!。而在 Objective-C中则没有这一区分,view既可表示这个对象是optional,也可表示是non-optional。这样就会造成一个问题:在 Swift与Objective-C混编时,Swift编译器并不知道一个Objective-C对象到底是optio...
2018-08-13 16:33:47
289
转载 欢迎使用优快云-markdown编辑器ss
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-08-13 16:13:51
172
原创 Ubuntu下 PPTP 和L2TP/IPSec服务器搭建
1.PPTP协议搭建1. 登录服务器,安装 pptpdsudo apt-get install pptpd2.修改配置文件/etc/pptpd.conf$ sudo vi /etc/pptpd.conf# 在 TAG: localip 后面添加如下内容localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245
2017-12-28 15:39:54
4774
原创 Android buttion 的四种事件
XML文件如下:<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> <Button android:id="@+id/button2"
2017-05-01 17:04:52
757
原创 解析XML
使用XMLDictionary 和GDXMLxmlDic .h//// XMLDictionary.h//// Version 1.4.1//// Created by Nick Lockwood on 15/11/2010.// Copyright 2010 Charcoal Design. All rights reserved.//// Get the la
2017-02-22 10:53:31
367
原创 UICollectionView 小总结 ---UICollectionViewFlowLayout
UICollectionViewFlowLayout
2017-01-09 13:53:16
629
原创 截图,截屏
- (void)createScreenShot{ UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraph
2017-01-09 11:36:05
436
原创 百度地图之基本功能
//// MapViewBaseDemoViewController.m// BaiduMapSdkSrc//// Created by BaiduMapAPI on 13-7-24.// Copyright (c) 2013年 baidu. All rights reserved.//#import "MapViewBaseDemoViewController.h"@
2016-12-15 12:02:26
1720
原创 添加自定义手势,UIGestureRecognizer
- (void)addCustomGestures { /* *注意: *添加自定义手势时,必须设置UIGestureRecognizer的属性cancelsTouchesInView 和 delaysTouchesEnded 为NO, *否则影响地图内部的手势处理 */ UITapGestureRecognizer *doubleTap =
2016-12-15 11:55:50
646
原创 UISegmentedControl
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:@[@"normal", @"custom"]]; [segment setSelectedSegmentIndex:0]; [segment addTarget:self action:@selector(changeMapAction:
2016-12-15 11:42:43
255
原创 swift 尾随闭包
{ func myMentue(name:String) -> Void { print("实例方法\(name)") } func myblock(_ param:(_ make:String) -> Void) -> Void { param("MyBolcCpde") } func blocData(_ resourc
2016-12-07 16:44:00
656
原创 Swift 新的访问控制fileprivate和open
在swift 3中新增加了两种访问控制权限 fileprivate和 open。下面将对这两种新增访问控制做详细介绍。fileprivate在原有的swift中的 private其实并不是真正的私有,如果一个变量定义为private,在同一个文件中的其他类依然是可以访问到的。这个场景在使用extension的时候很明显。class User { privat
2016-12-07 14:49:34
448
原创 swift 学习小笔记之语法
1.for循环let str = "--Str" for index in 0 ..< indexPath.row { print( "索引 [\(index)] 对应的值为 \(str+"11")") }
2016-12-07 11:26:48
324
原创 swift 之使用第三方框架 cocoapods
platform :ios, '7.0'inhibit_all_warnings!use_frameworks! //可以直接在swift文件里 import 第三方框架source 'https://github.com/cocoapods/specs.git'target 'swift---' dopod 'Masonry'end
2016-12-06 14:33:28
345
原创 swift 学习小笔记之控件
1.UIButton1> 增加addtarget事件//不传递触摸对象(即点击的按钮)button.addTarget(self, action:#selector(tapped), for:.touchUpInside)func tapped(){ print("tapped")} //传递触摸对象(即点击的按钮),需要在定义action参数时,方法名称后面带上冒
2016-12-06 12:01:26
325
原创 phpPHP命名空间相关笔记
1.命名空间的声明通过关键字namespace 声明命名空间 namespace 命名空间名称; 命名空间针对 函数、类名、常量 三部分起作用,并称之为元素。 常量声明: define(名称,值);//(在类外边声明常量)与命名空间没有关系 const 名称 = 值;//也可以声明命名空间===与命名空间有关系 1>const 可以在类的内部声明常量信息(类常量)
2016-11-23 10:42:31
376
原创 thithinkphp Model笔记
1.在项目配置文件下配置数据库信息2.创建Model模型类原则上每个数据表都对应一个Model模型类3.实例化对象实例化对象要表现命名空间实例化普通Model对象$Model = new \Model\xxxModel();除了可以实现简单操作(调用父类Model方法实现也可以实现一些复杂操作(调用具体普通Model方法实现)使用D函数实例化
2016-11-21 17:46:44
688
原创 mysql备份与恢复
1, 用 mysqldump 命令进行备份: 在命令提示符窗口(注意不是 MySQL 的 MySQL Command Line Client 窗口)中输入, mysqldump -hlocalhost -uroot -proot temp > temp_2011.sql mysqldump -hlocalhost -u root -proot
2016-11-21 14:07:37
308
原创 phpphp常用常量
模板中使用的系统变量和常量(1)系统变量:在模板中输出系统变量:包括server、env、session、post、get、request、cookie {$Think.server.script_name} // 输出$_SERVER变量{$Think.session.session_id|md5} // 输出$_SESSION变量 {$Think.get.pageNumbe
2016-11-21 10:48:41
342
原创 css 定位屏幕中央
使用CSS3的弹性布局(flex)的话,问题就会变得容易多了。使用CSS3的弹性布局很简单,只要设置父元素(这里是指body)的display的值为flex即可 用户登录 html,body { width: 100%; height: 100%; margin: 0; padding
2016-11-18 16:36:18
1827
原创 ThinkPHP 常用常量
tp 框架提供了常量http://域名/index.php/分组/控制器/操作方法/名称/值/名称/值..__ROOT__ : 网站根目录地址__APP__ : 当前项目(入口文件)地址__GROUP__:当前分组地址__URL__ : 当前模块地址__ACTION__ : 当前操作地址__SELF__ : 当前 URL 地址__CURRENT__ : 当前模块的模板
2016-11-16 14:21:25
953
原创 PHP发送POST请求,以及返回json反斜杠处理
<?php function http_post_data($url, $data_string) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_seto
2016-11-14 13:24:40
5628
原创 php -CURL使用步骤
<?php // cURL库的使用 // 1.初始化curl句柄 $ch = curl_init(); // 设置curl // CURLOPT_URL 请求URL地址 // CURLOPT_RETURNTANSFER 捕获内容 但是不输出 // CURLOPT_HEADER 设置头信息 // CURLOPT_POST 发送POST请求 // CURLOPT_POSTFIELDS
2016-11-11 14:58:32
405
原创 微信六大接收接口(接收普通消息)
1.文本接口说明:如果用户发送过来的XML数据中,MsgType节点为'text'就代表用户发送的是文本消息。接口开发步骤:1>在接收是,接收MsgType节点 // 接收用户消息类型 $msgType = $postObj->MsgType;2>在接收消息是对$MsgType进行判断if ($msgType == 'text
2016-11-10 15:32:19
5125
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人