OC - 开发笔记之小知识点的大作用

本文介绍了解决iOS应用中UI更新时遇到的错误方法,包括如何正确地在主线程中更新UI以避免错误。此外,还探讨了iOS7之后navigationBar布局的变化,并提供了设置透明导航栏时坐标原点位置的解决方案。
摘要由CSDN通过智能技术生成

 

报错数据为:

   This application is modifying the autolayout engine from a background thread after the engine was ac

 

解决办法:  这种错误,大部分是由于开启了分线程,然后更新UI的时候,没有将更新操作放在主线程中,导致的错误。只要 将更新UI的动作,放在主线程中,即可解决此问题

 

   dispatch_async(dispatch_get_main_queue(), ^{
     	// 更新UI
   });
	// 更新UI
   });

 

 


可能会出现的布局偏移64个像素点

iOS7之后,navigationBar.translucent默认是YES,此时导航栏为半透明效果,坐标零点默认在(0,0)点 ,当不透明的时候,坐标零点在(0,64);

如果想设置成透明的,而且还要零点从(0,64)开始,添加:self.edgesForExtendedLayout = UIRectEdgeNone; 

 

__weak和__block的区别:

1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 在MRC环境下,__block不会增加引用计数,不会导致循环引用,在ARC环境下 ,__block增加引用计数,有可能导致循环引用。

2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。不会增加引用计数

3.__block对象可以在block中被重新赋值,__weak不可以。 

 

为什么block中不能修改普通变量的值:由于无法直接获得原变量,技术上无法实现修改,所以编译器直接禁止了。

block的循环引用并非__block修饰符引起,而是由其本身的特性引起的。

 

weak和assign都不会增加引用计数,区别是修饰的对象在释放时所做的操作不同,weak是会把对象置为nil,assign则不会,assign一般适用与基本数据类型

 

调用手机震动效果

添加头文件 #import <AudioToolbox/AudioToolbox.h>

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)

 

 

获取控件在父视图中的位置

 

 

CGRect rect1 = [view2convertRect:view2.boundstoView:backgroundView];

 

获取控件在window中的位置 

 

CGRect rect2 = [view2convertRect:view2.boundstoView:[UIApplicationsharedApplication].keyWindow];

 

 

模拟器路径

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

 

 

直接删除文件后,出现 is missing from working copy   missing file 出现警告

出现的原因:   由于svn缓存未清除,导致的警告

解决方法:1.  在终端输入 cd 到工程文件路径

2.  输入 find . -type d -name .svn | xargs rm -rf  或 输入 svn rm --force 丢失文件的名称 (前者:删除所有svn相关,后者:删除丢失的某个文件的svn相关)

 

 

mac 打开安装任何来源

终端输入 sudo spctl --master-disable

 

 

 

清除模拟器中运行的项目,运行项目时,可重新生成

~/Library/Developer/CoreSimulator/Devices/

 

移除对设备的支持,调试时会重新下载

~/Library/Developer/Xcode/iOS DeviceSupport

 

移除DerivedData, 项目运行时,可重新生成

~/Library/Developer/Xcode/DerivedData

 

模拟器卡死,一直处于黑屏状态

rm -rf ~/Library/Developer/CoreSimulator/Devices (删除模拟器目录下是所有文件)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值