iOS学习之——学习中遇到的一些常用的方法及一些注意事项(持续更新)
来源:互联网 发布:sql注入漏洞扫描工具 编辑:程序博客网 时间:2024/04/29 22:00
常用的方法(注意事项):
- rangeOfCharacterFromSet: 只搜索给定字符集的第一个字符
- 字符串截取到第n位 (substringToIndex: n)(第n位不算再内)
- 时间比较函数
- (BOOL)isEqualToDate:(NSDate *)otherDate;
// 与otherDate比较,相同返回YES
- (NSDate )earlierDate:(NSDate )anotherDate;
// 与anotherDate比较,返回较早的那个日期
- (NSDate )laterDate:(NSDate )anotherDate;
// 与anotherDate比较,返回较晚的那个日期 - [NSBundle mainBundle] //找到程序的目录
- [string stringByReplacingOccurrencesOfString:@”-“withString:@”/”]; 将string中 “-” 替换为 “/”
- [xx componentsSeparatedByString:@”“] 将string字符串切割成array数组,从”“处切割。
- [params setObject:b forKey:a]; 将b赋予a 字典 a:b
eg:[params setObject:19 forKey:@”age”]; - [obj isKindOfClass:[NSDictionary class] 判断前后是否为同一个类型;返回bool值
- [self getObjectData:obj] 将obj对象的属性值及名称赋予前者
- (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index方法。这样我们可以通过数组下标来读写相应元素。
- pathForResource:获取程序运行时目录
- rangeOfString:获取指定短字符串在长字符串中的开始,结尾索引值;
- stringWithContentsOfFile:按行读取文件
- 从字典映射到一个对象,这是KVC中的一个方法所提供的,这个方法就是 setValuesForKeysWithDictionary
- -(id)dateByAddingTimeInterval:(NSTimeInterval)seconds
返回以当前NSDate对象为基准,偏移多少秒后得到的新NSDate对象。 - 使用boundingRectWithSize计算内容高度
- segue.destinationViewController;//拿到目标控制器(segue跳转的后者)
segue.sourceViewController;(segue跳转的前者) - [self.view endEditing:YES]; 关闭键盘
resignFirstResponder 关闭键盘
becomeFirstResponder 打开键盘 - self.leftView = label;
self.leftViewMode = UITextFieldViewMode; view左边增加一个小图标的实现 - (CGSize)sizeWithAttributes:(NSDictionary *)attrs; 获得字体的尺寸
- 处理superView和subView往往用到几个方法:
removeFromSuperview;//调用者为subView
insertSubview:atIndex;//调用者为superView - reloadData 刷新显示数据(UITableView)
[tableView deselectRowAtIndexPath:indexPath animated:YES];
// 不加此句时,在二级栏目点击返回时,此行会由选中状态慢慢变成非选中状态。
// 加上此句,返回时直接就是非选中状态。sortedArrayUsingComparator:^NSComparisonResult(id familyDate1, id familyDate2) {}
如果你期望的是值小的在前而值大的在后,则可以在比较的时候返回NSOrderedAscending(-1),否则,就是NSOrderedDescending(1)。- conformsToProtocol:@protocol()是用来检查对象是否实现了指定协议类的方法obj_two conformsToProtocol:在代理调用是,检查其代理是否符合协议,或者使用 respondsToSelector检查对象能否响应指定的消息,是避免代理在回调时因为没有实现代理函数而程序崩溃的一个有效的方式
- 将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。
将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。 - UIImageView 中填充图片
[imageView setImage:[UIImage imageNamed:@”desc_bn.png”]]; - 获取当前屏幕中present出来的Viewcontroller
- (UIViewController *)getPresentedViewController
{
UIViewController *appRootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
UIViewController *topVC = appRootVC;
if (topVC.childViewControllers.count>0) {
topVC = [topVC.childViewControllers lastObject];
}
return topVC;
} - _objc_rootRetainCount(obj) 可获取指定对象的引用计数数值。
- 函数原型:void *calloc(size_t n, size_t size);
功 能:在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
与malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
注意事项
1. imageNamed带有缓存,通过imageName创建的图片会放到缓存中
imageWithContentsOfFile不带缓存
2. 自定义按钮设置在返回按钮是无效的(self.navigationItem.backBarButtonItem)
3. 状态栏20;导航条44(大小)
4. 当视图对象的userInteractionEnabled设置为NO的时候,用户触发的事件,如触摸,键盘等,将会被该视图忽略(其他视图照常响应),并且该视图对象也会从事件响应队列中被移除。 当userInteractionEnabled设为YES时,则事件可以正常的传递给该视图对象。 userInteractionEnabled的属性默认值就是YES。
5. 当使用NSLog中%@输出一个对象的时候,他会调用对象的description方法
重写description方法 –输出自己对象中的内容
6. objectForKey: 和 valueForKey: 在多数情况下都是一样的结果返回,但是如果 key 是以 @ 开头,valueForKey: 就成了一个大坑,建议在 NSDictionary 下只用 objectForKey: 来取值。
7. 控制器的view是延迟加载的:用到时再加载
可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
控制器的view加载完毕就会调用viewDidLoad方法
懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.
注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化
8. ios字典和数组遍历时不能执行removeobject操作,不然会crash掉
9. control reaches end of non-void function
它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。
- iOS学习之——学习中遇到的一些常用的方法及一些注意事项(持续更新)
- (持续更新)日积月累——iOS开发过程中遇到的一些小问题
- 一些学习资料的整理(持续更新中)
- 学习kubernetes中遇见的一些坑(持续更新)
- fedora23 中遇到的一些问题 (持续更新)
- caffe训练中遇到的一些问题(持续更新......)
- iOS学习之——常用的枚举类型以及名词的含义(持续更新)
- web app遇到的一些坑及小技能(持续更新...) 遇到的一些坑
- iOS学习之——常用的类名(持续更新)
- iOS学习之——常用三方库(持续更新)
- java编程中遇到的一些错误 持续更新
- 【持续更新】刷题时遇到的一些问题
- 使用jQuery的一些注意事项总结(持续更新......)
- BUG记录之——关于AS的一些红buffer总结(持续更新中)
- 一些有用的iOS第三方开源库——持续更新
- 在学习位图中遇到的一些常用的数据类型
- java web开发中遇到的问题及解决方案(个人学习日志,持续更新)
- Hibernate学习_002_web开发中一些剪不断、理还乱的关系总结(持续更新)
- Chrome开发者工具
- 【真是好东西呀】版本管理软件Git
- iOS 保存图片到相册, 保存到指定的路径
- HODJ 2962 Trucking
- tomcat报错org.springframework.web.context.ContextLoaderListener找不到
- iOS学习之——学习中遇到的一些常用的方法及一些注意事项(持续更新)
- 元素查找
- leetcode 343. Integer Break
- linux evaluate inode
- Web Service 元数据注释
- Unicode(UTF-8, UTF-16)区分
- 怎样将PDF中的文本导出
- Git学习之路(一)——初识Git
- 1099端口占用问题解决方案