一、模拟器黑屏
解决方法:
二、打代码时,Xcode没提示
解决方法:
0. 点击Preferences
1. 进入Text Editing
2. 勾选
三、有时候可能在勾选 Autolayout的时候,搞错了对象,误把控制器的View的User Interaction Enabled勾选掉了。
解决办法:User Interaction Enabled 必须勾选,否则控制器根视图中所有子控件无法进行任何操作。
四、访问权限
错误:
会报链接错误。
报错原因,利用下划线访问了@package这个权限里的东西。
被@package 修饰的成员属性只能在同一个框架内部才允许访问。否则会引发link erro。
@private 实例变量只能被声明它的类访问
@protected 实例变量能被声明它的类和子类访问。
@public 实例变量可以被任何类访问。
五、运行程序时,显示运行完成,但是模拟器没反应。
问题原因: 有时候应用程序的标示符一样,会导致程序不能成功运行。
解决方式一:将模拟器之前的程序删除。
解决方式二: 将模拟器还原
六、2d表示保留两位 02d 表示不够了 用0来补齐。
1 NSLog(@"%02d",cols);
七、Plist文件读取。
错误原因:不要看到有很多元素的,就认为是数组。这样解析是错误的。
_dict = [NSArray arrayWithContentsOfFile:path];
这个pist文件是一个字典,正确的解析此plist文件。
// 2.根据文件路径加载字典
_dict = [NSDictionary dictionaryWithContentsOfFile:path];
八、给程序拖图片的时候,一定要注意,如下图勾选的,都要勾选中。
九、禁用UITextField的双击出现复制粘贴剪切等操作
解决方式:
有时候我们需要禁用UITextField的双击出现copy paste的功能,然而UITextField本身没有直接设置禁止用户复制粘贴剪切操作等方法,但是可以重载canPerformAction方法来实现。
新建一个类继承UITextField,然后实现canPerformAction方法:
只需覆盖canPerformAction:withSender方法就可以,canPerformAction:withSender属于UIResponder类的。
如下:
1 -(BOOL)canPerformAction:(SEL)action withSender:(id)sender 2 { 3 UIMenuController *menuController = [UIMenuController sharedMenuController]; 4 if (menuController) { 5 [UIMenuController sharedMenuController].menuVisible = NO; 6 } 7 return NO; 8 }
十、将UIButton添加到UILabel,UIButton是不能点击的。
原因:
1.UILabel是继承UIView的,默认不能监听点击事件。UIButton是继承UIControl能够监听点击事件。
2.将UIButton添加到UILabel,他们之间的关系是UILabel是UIButton的父视图,父视图都不能监听点击事件,自然而然不会将事件传递给子视图,因此UIButton也不能监听点击事件了。
思维指导:有些人会认为UIControl不是继承UIView的吗,都是继承UIView,为什么单独继承UIControl可以监听点击事件,继承UIControl的父类UIView不能监听事件了,这是因为我们一般在父类里实现的都是一些共用的属性和方法,而在子类中具体实现子类特有的方法。因此在UIControl实现了监听点击的特有方法,即继承UIControl才能监听点击事件。