tips-3

[NSNull null]//单例,占位的,约等nil
因为数组和字典不能为空,所以可以用它,表明一个空的数组活字典对象

在线格式化 ocChina

11:25

还有Inf表示“无穷大”,pi表示常数π,NaN,是Not a Number的缩写。NaN 用于处理计算中出现的错误情况,表示“不明确的数值结果”

沙河

NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

NSFileManager

NSFileManager *manager = [NSFileManager defaultManager];

//保存下载的文件到沙河
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

//拼接文件全路径
NSString *fullPath = [caches stringByAppendingPathComponent:response.suggestedFilename];
self.fullPath = fullPath;
//创建文件
[manager createFileAtPath:fullPath contents:nil attributes:nil];

网络上传,分隔符可以自定义,但要求从始至终是同一个,一样

开子线程,发网络请求失败.

因为子线程默认没有runloop,connection为局部变量,加入了一个不存在的runloop,会被释放.(解决用一下runloop懒加载,[NSRunLoop currertRunLoop])主线程可以,因为有runloop存在强引用connection..
用start的分开发请求的可以在子线程.因为它会判断runloop存在与否,不在就创建.

resume回复
suspend暂停
cancel取消

GET请求方式

URL ;协议+域名(IP)+端口+?+参数

内存泄露?

-(void)dealloc
{
//注意:在不用的时候一定要调用该方法来释放,不然会出现内存泄露问题
/**
* Cancels all outstanding tasks and then invalidates the session object.
Once invalidated, references to the delegate and callback objects are broken. Session objects cannot be reused.
To allow outstanding tasks to run until completion, call finishTasksAndInvalidate instead.
*/
//dealloc里调用,难道??程序退出了self.session还有强引用,所以要这么干
[self.session invalidateAndCancel];
// [self.session resetWithCompletionHandler:nil];

//    [NSURLConnection connectionWithRequest:nil delegate:nil]

}

使用方法传参数是遇到

*传入(传对象指针)//需要传入一个内容对象
**/(void *)接收(传对象指针地址,改指向)//需要传入一个容器,可以接收内容对象对象

回调的代码块,外部为定义方法中,接收参数,代码块

//传出代码块的实例对象让别人用//传出的是代码块的实例对象,顺向作为对象参数(和其他通过代理或其他方式传出的对象一样)传出

外部定义一个方法.内部在使用时,传入代码块实例对象作为参数.

void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler//在内部声明类型 (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable)),然后定义实例completionHandler,然后实例completionHandler作为参数传出,然后在外部使用completionHandler
-(void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler
{
//使用
completionHandler(参数1,参数2);
}

一般的代码块,外部在使用方法中,传入参数,代码块

//传出的是声明的类型,逆袭,
//需要使用一个代码块,传出声明,让别人实例化,并通过作为方法参数传入实例对象,所以一般需要传出方法让别人使用.

定义一个方法,让外部使用,但使用这个方法需要传入一个代码块实例对象参数.

//在内部声明类型,外部实例化对象,内部使用

NSStringFromSelector();
NSSelectorFromString()

FOUNDATION_EXPORT就是extern的意思

typedef A B//给A类型起别名B类型

define A B //定义A等价于B

要传出去,用实参,外面用形参接受
要接受,用形参,外面用实参传入
形参 定义方法(形式参数)
实参 使用方法(实际参数)

形参和容器的思想是一样的

[[UIDevice currentDevice].systemVersion floatValue] >= 8.0

/**

  • 当前定位授权状态发生改变时调用

  • @param manager 位置管理者

  • @param status 状态
    */
    -(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
    {
    switch (status) {
    case kCLAuthorizationStatusNotDetermined:
    {
    NSLog(@"用户未决定");
    break;
    }
    case kCLAuthorizationStatusDenied:
    {

         // 判断当前设备是否支持定位, 定位服务是否开启
         if([CLLocationManager locationServicesEnabled])
         {
             NSLog(@"真正被拒绝");
             
             // 提醒给APP 授权
             // iOS8.0- , 截图
             // iOS8.0+ , 通过调用一个方法, 来直接到达设置界面
             // 跳转核心代码
             NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
             if ([[UIApplication sharedApplication] canOpenURL:url]) {
                 [[UIApplication sharedApplication] openURL: url];
             }
             
         }
         else
         {
             NSLog(@"定位服务被关闭");
             
         }
         break;
     }
         // 系统预留字段
     case kCLAuthorizationStatusRestricted:
     {
         NSLog(@"受限制");
         break;
     }
     case kCLAuthorizationStatusAuthorizedAlways:
     {
         NSLog(@"前后台定位授权");
         break;
     }
     case kCLAuthorizationStatusAuthorizedWhenInUse:
     {
         NSLog(@"前台定位授权");
         break;
     }
         
     default:
         break;
    

    }
    }

// iso7
// info没有key,没有+requestWhenInUseAuthorization...
// 开始就可用前台
// 勾选后台模式 location后台可以用,无蓝条
// ----------ios8.0+定位适配-----------
// 在info有两个key,前台,和always
// NSLocationAlwaysUsageDescription,iOS8.0+前后台定位描述
// NSLocationWhenInUseUsageDescription,iOS8.0+前台定位授权描述
// 配前台key和勾选后台模式 location后台可以用,但有蓝条
// always没蓝条
// ios9
// 在info有两个key,前台=,和always 加一个属性设置
// @property(assign, nonatomic) BOOL allowsBackgroundLocationUpdates __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_9_0) __WATCHOS_PROHIBITED;
// _locationM.allowsBackgroundLocationUpdates = YES
// 配前台key用前台
// 配always没蓝条,可用前后台
// 或者配前台和后台属性设置+勾选后台模式 location,可用前后台.但后台有蓝条

使用方法,在返回值里,返回要求,说明是同步的,在后面的代码块里面返回方法使用结果,说明异步,或者传入容器也可能是异步

宏定义传参的两种方式

define(name) (name)/(…name...)

define(name) ##name/name##

// 1. 获取当前设备朝向("磁力计传感器")
[self.locationM startUpdatingHeading];

double -->NSString

@((double)pl.location.coordinate.latitude).stringValue

1. 获取info.plist 文件内容

NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];

// NSLog(@"%@", infoDic);

// 2. 获取其他开发人员, 填写的key
NSString *always = infoDic[@"NSLocationAlwaysUsageDescription"];

NSString *whenInUse = infoDic[@"NSLocationWhenInUseUsageDescription"];

// 2. 把点坐标, 转换成为, 经纬度坐标
CLLocationCoordinate2D center = [self.mapView convertPoint:point toCoordinateFromView:self.mapView];

地里编码和反地理编码都是 得到 placemark

结构体的创建其实可以用强转,不一定非要make

view.centerOffset = CGPointMake(10, 10);
view.centerOffset=(CGPoint){10.0,10.0}
option.location = (CLLocationCoordinate2D){23.132931, 113.375924};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容