最近遇到你,就把你抓起来了

2018-05-10  本文已影响0人  风雪山神喵

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详解

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];

上一篇 下一篇

猜你喜欢

热点阅读