iOS工作笔记(十二)

1.从ControllerA跳往照相UIImagePickerController,只能用presentViewController形式,因为定义UIImagePickerController时,

UIImagePickerController *pickerController = [[UIImagePickerController alloc]init];
pickerController.allowsEditing = NO;
pickerController.delegate = self;
pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;

设置delegate时,若只引入UIImagePickerControllerDelegate,那么会报以下警告:

Assigning to ‘id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>’ from incompatible type ‘AddSightingViewController *const __strong’

解决方法是再添加UINavigationControllerDelegate。如下

@interface ControllerA()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@end

所以当跳转界面时用

[self.navigationController pushViewController:pickerController animated:YES];

会报Pushing a navigation controller is not supported错误
引以为戒

2.解决A valid provisioning profile for this executable was not found 问题

当导入签名和证书后,真机调试仍出现这种问题,那么可以按照以下步骤排查
①先检查provisioning profile是否导入成功
我用的Xcode版本是7.3.1,在Window——>Devices——>选中运行的真机——>provisioning profiles查看
②检查 Project 和 Target 中的 Code Signing Identity 是否设置一样,必须一样

3.当往NSArray中存入基本数据类型时,可以用NSNumber,也可以用简写

//NSNumber形式
_signTypesArr = [NSArray arrayWithObjects:[NSNumber numberWithInteger:3],[NSNumber numberWithInteger:2], nil];
//简写形式
_signTypesArr = [NSArray arrayWithObjects:@(2),@(2),@(2),@(1),@(3),@(3),@(3), nil];

但从数组中往外读取时,下面这种写法虽然不报错,但取的值不对,会取到意想不到的值

NSInteger typeDef = self.signTypesArr[i];

正确的是

NSInteger typeDef = [self.signTypesArr[i] integerValue];

4.NSError转换为NSString

NSError *error= [NSError errorWithDomain:@"" code:0 userInfo:errInfo];
NSString *errorStr = [error localizedDescription];
时间: 2025-01-05 15:13:41

iOS工作笔记(十二)的相关文章

IOS工作笔记(二)

1.懒加载(即延迟加载)只有被调用时才初始化,防止资源浪费,需要重写对象 的get方法,且必须写成成员变量形式,如_imageData.可以这么写,如: 1 @property(nonatomic,strong) NSArray *imageData; 2 3 -(NSArray *)imageData{ //重写imageData的get方法 4 if(_imageData == nil){ 5 //初始化数据 6 NSMutableDictionary *image1 = [NSMutabl

iOS工作笔记(十四)

1.scrollview的frame指的是其可视范围,contentSize指的是其滚动范围,分别是在水平方向和竖直方向上的 所以要让scrollview在水平方向不能滚动,那么需要如下设置 _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]; _scrollView.contentSize = CGSizeMake(0, kScreenHeight*3);

iOS工作笔记(十五)

1.使用MJRefresh上拉加载的小细节 MJRefreshBackGifFooter *footer = [MJRefreshBackGifFooter footerWithRefreshingBlock:^{ [_searchResultView.mj_footer endRefreshing]; //加载新内容 [self loadMoreItemList]; }]; 这样写的效果是,当下拉加载时,新内容是不直接展现的,还得继续往上拉,才能看到新内容 当换种写法,将endRefreshi

laravel3学习笔记(十二)

原作者博客:ieqi.net ==================================================================================================== 请求反射 HTTP 协议本身是无状态性的,但是在应用中处理各种业务逻辑时我们必须要有状态的把控,这样,折中的办法就是将状态进行标记然后嵌入到 HTTP 协议的请求中,然后应用根据这些标记来进行状态的串联以及处理.所以我们就要对请求进行反射处理以获取请求信息, Lara

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

从零开始学ios开发(十二):Table Views(中)UITableViewCell定制

我们继续学习Table View的内容,这次主要是针对UITableViewCell,在前一篇的例子中我们已经使用过UITableViewCell,一个默认的UITableViewCell包含imageView.textLabel.detailTextLabel等属性,但是很多时候这些默认的属性并不能满足需要,其实更多的时候我们想自己制定UITableViewCell的内容,这篇学习的就是制定自己的UITableViewCell. UITableViewCell继承自UIView,因此它可以加载

虚拟机VMWare学习笔记十二 - 将物理机抓取成虚拟机

1. 安装VMware vCenter Converter Standalone Client 运行虚拟机,File -- Virtualize a Physical Machine 这时如果电脑中没有VMware vCenter Converter Standalone Client ,则会进行安装. 安装过程 之后图标会出现在桌面上,双击运行 选择连接到本地服务器,登陆 点击转换计算机 这个,可以将本地计算机抓取成虚拟机,也可以将其他可以访问的计算机(需知道管理员用户名及密码)抓取成虚拟机.

iOS工作笔记之NSClassFromString

id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init]; 和 id myObj = [[MySpecialClass alloc] init]; 是一样的.但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已. 因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化. 比如在iPhone中,NSTask可能就会出现这种情

swift 笔记 (十二) —— 下标

下标 swift允许我们为 类,结构体,枚举 定义下标,以更便捷的方式访问一大堆属性.比如Array和Dictionary都是结构体,swift的工程师已经为这两个类型提供好了下标操作的代码,所以,我们才可以通过 myArray[2]这种方式,读取和改写这个struct中保存的数据.而且,一个类型中可以定义多种下标访问方式(重载,关于重载,在后面的笔记中会提到,这里先不用太在意) 下标可以定义为"读写"型的,也可以定义为"只读"型,这种行为,是通过定义一组操作完成的