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,如果报错显示找不到。要在这里添加:
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文件