OC警告!

0、自定义tableviewCell方法

HouseResourcesMapCell *cell = [[[NSBundle mainBundle] loadNibNamed:@"HouseResourcesMapCell" owner:self options:nil]firstObject];

0、导航栏遮住view

HouseResourcesSelectViewController *selectVC = [[HouseResourcesSelectViewController alloc]initWithNibName:@"HouseResourcesSelectViewController" bundle:nil];

selectVC.edgesForExtendedLayout = UIRectEdgeNone;

1、自定义tableHeaderView,等自定义的view的frame确定后再赋值给tableHeaderView!因为第一次将一个对象赋值给headerView时,headerView的高度就已设定!

self.tableView.tableHeaderView = self.merchantHeaderView;

2、将一个对象放入数组前一定要判断是否为空!!不然会崩溃

for (MerchantAdPicModel *adPic in self.adListModel.adList) {

if (adPic.pic) {

[adPicUrl addObject:(NSString *)adPic.pic];

}

}

3、判断一个字符串对象是否有值,是否为空,一定要用.length!当一个对象作为别人的属性时,它传入空值,显示@“”,而不是nil。

4、数组不能在遍历里面进行删除操作。

//清除数组中元素方法

//判断数组中元素个数是否超过预定的10条

if (self.searchHistoryMutableArray.count > 10) {

NSRange range = {10,self.searchHistoryMutableArray.count-10};

[self.searchHistoryMutableArray removeObjectsInRange:range];

}

//清除所以子控件方法

while (self.merchantHeaderMenuScrollView.subviews.count) {

[self.merchantHeaderMenuScrollView.subviews[0] removeFromSuperview];

}

5、for(int i = 0,)一定不要忘记给i赋初始值。

6、tableView每一次reloadData,tableHeaderView、tableFooterView也都重新加载一次!!即tableView所有都重新加载一次!!对于自定义tableHeaderView的(self.tableView.tableHeaderView = self.merchantHeaderView;),一定要要考虑重复添加控件的情况!

- (void)initailTableViewHeaderAdView{

//清除以前数据

while (self.merchantHeaderAdView.subviews.count) {

[self.merchantHeaderAdView.subviews[0] removeFromSuperview];

}

7、json解析失败

//服务器那边返回的json数据有时含有制表符是无法解析的,要过滤掉

NSString *s = [[NSString alloc] initWithData:responeObject encoding:NSUTF8StringEncoding];

s = [s stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];

s = [s stringByReplacingOccurrencesOfString:@"\n" withString:@""];

s = [s stringByReplacingOccurrencesOfString:@"\t" withString:@""];

NSData * data = [s dataUsingEncoding:NSUTF8StringEncoding];

如下原因会造成JSON校验失败,而且会让你不知道为什么失败

JSON字符串里的非数字型键值没有双引号

JSON中存在\t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过。去掉就能过了。

编辑器有bom头也会造成

8、更改xib里面的约束

更改xib里面约束最好将约束作为属性!通过属性来改!!。如果没有作属性,通过改frame的height来改约束,一定要更新约束updateConstant

//更改高度约束

cell0.shopNameLabelHeight.constant = 34;

9、当对象被销毁时调用- (void)dealloc{}方法

10、从svn上的代码中拿过来的sdk,如果报错显示找不到。要在这里添加:

OC警告!_第1张图片

11、CIDetector 这个api是苹果在ios8之后提供的。所以用苹果自带的AVFundation扫描,如果从相册获取图片识别二维码,则需要8.0系统以上。

12、跳转到webview就闪退:url中有中文要转码!

url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

WebBrowser *webBrowser = [[WebBrowser alloc] initWithUrl:[NSURL URLWithString:url]];

13、[tableview reloaddata] 重新加载,viewForHeaderInSection组标题方法也会重新加载!

可以设置重新加载特定row的cell跟特定section的cell。

14、页面跳转感觉有卡顿!页面设置背景色即消除。

15、Ezycloud项目,引入一个别的类,很多类报错!c++混编问题!将.m文件改.mm文件

你可能感兴趣的:(OC警告!)