0、滑动加滑动要控制长度和滑动长度
p、[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from object
[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from object文章中指出:
由于在NSDictionary初始化的时候出现Crash,在此分享下如何跳坑NSDictionary初始化Objective-C中,NSDictionary初始化的方法有很多种方法1: [NSDictionary dictionaryWithObjectsAndKeys:<#(id), ...#>, nil]
方法2: NSDictionary *dic = @{@"key":value}坑在哪里?
坑就在第二种初始化方法 NSDictionary *dic = @{@"key":value}它到底是如何坑的呢?
如果你的value是为nil 必将引发崩溃:
'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]意思就是说使用[__NSPlaceholderDictionary initWithObjects:forKeys:count:]这个初始化方法,发现keys count和objcects的个数不匹配了如何规避?
在使用@{@”key”:value} 这种方式初始化的时候,一定要对value做是否为nil的判断,为nil就不要加入Dictionary或使用标准的初始化方法:NSDictionary dictionaryWithObjectsAndKeys:value1,@"v1",value2,@"v2",value3,@"v3", nil];
或其它的几个初始化方法进行初始化,这样如果value为nil就不会加入字典,使用 objectForKey:取出来的对象就会为nil对象,不会引发崩溃。
关联:使用@[]方法初始化NSArray也有此坑,规避方法同字典一样
q、CRASH: -[NSNull length]: unrecognized selector sent to instance错误的处理办法
当你的传值会有空值的时候
CRASH: -[NSNull length]: unrecognized selector sent to instance错误的处理办法
r、iOS Provisioning Profile(Certificate)与Code Signing详解
s、iOS退出登录后,重新登录,桌面文件不见了
找到“iCloud Drive (归档)”下自己账户下的桌面,拷贝回桌面,就OK了
t、报错:iOS -[__NSArrayI addObject:]: unrecognized selector sent to instance
可能是在某个过程中,导致了数组类型的转换,导致它调用不了本来可以调用的方法
iOS -[__NSArrayI addObject:]: unrecognized selector sent to instance~解决方法
x、按钮点击反应慢,看不出来效果
啊~~给忘了。。原因就是4楼那个,父视图是UIScrollview,按钮点击事件和srollview的滑动事件冲突。。解决办法:scrollview的delaysContentTouches属性设为NO然后实现scrollview的一个方法- (BOOL)touchesShouldCancelInContentView:(UIView *)view;返回YES就可以了。。具体讲解看这里:http://blog.sina.com.cn/s/blog_71715bf80101ie1e.html
y、获取View中的UIButton控件,来做一些UIButton才可以做的事
//tag不能为零
int totalNum = 6;
int tagHelper = 1000;
for (int i = 0; i < totalNum; i++) {
UIButton *button = (UIButton*)[self.view viewWithTag:(i+tagHelper)];
if (i == index) {
[button setTitleColor:orange_textColor forState:UIControlStateNormal];
continue;
}
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
}
z、UITableView的cell重用有什么意义?在什么时候要重用?是否控件出现乱象都是由于cell复用导致的?
简答:
cell的重用,可能是可以优化资源的使用。
cell的重用,就意味着,我生成有限个cell(估计是可视范围内,但也不是,它会稍微调整,小的会变大,然后就变不回来了)。
就像是,一件件衣服,可能会大小不一。
如果你的cell,身材都一样,每个人show出来的时候,都会穿起一件衣服。
衣服是有限的。
那么,别人的穿过的,可能变形了。
我穿的时候,就会不合适了。
这就是为什么,重用的cell,会导致界面混乱不已。
不要慌。这个时候,你只要不再复用cell。那么,就可以得到自己想要的样子。
注:
直接点的话,你可以切换这两种方式,看哪个合适吧。
cell复用:UITabelViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reused"];
cell不复用:UITabelViewCell *cell = [[UITabelViewCell alloc] init];
网友评论