IOS8界面调整自适应属性后无效的解决方法


IOS8界面中的一个cell使用时无法调整cell的自适应值,从比较早的版本中拷贝一个自定义cell,替换到代码中即可!

替换到代码中又发现名字命名成CustomNotiInfoCell时又无法适应的了!

总体流程发现 CustomNotiInfoCell  –替换–》 skinCell(我原始早版本的自定义cell)可以自适应

skinCell  –改名–》 CustomNotiInfoCell(原名字)自适应不了了,找不到哪里出现的问题,就直接吧原来的名字更改了下

CustomNotiInfoCell — 改名–》CustomTheInfoCell
解决了问题!!


iOS 资源刷新问题

曾经遇到过一个问题,打断点,log测试均发现数据正常,但是数据在图表上的显示的位置确是有一个位置一直错误。

 

遇到这样的问题,找代码分析不出来原因了之后,clean下代码,然后重新运行下,就可以解决问题!

 

IOS gooAdMob 链接lib问题


以前遇到过两个错误:

1.0  正式版发布版本时候提示app类内使用了免费版的广告。

2.0  间歇性提示gooAdMob无法找到lib的问题。

解决了第二个问题,我当初加入lib 的时候,使用的方法是直接将文件夹拖拽至工程内部的。实际xcode链接过程中还是找到的源lib所在的文件夹(我的是桌面)

然后我在清理桌面的时候,再编译xcode,就会出现lib无法找到的错了! 估计是什么地方没有刷新的原因,退出xcode 再进入,即可解决问题。

第一个问题暂没有发现是什么原因,不过初步判断有可能是我在编译版本的时候,在app的配置文件里,编译正式版的时候,也把免费版的plist文件用了导致的!


iOS 规范设置指针的一种方法

-(void)setState:(PeriodState *)newState{

      [selfgetRecordState];

      //    int i = 0;

    AppDelegate_iPhone * appDelegate = (AppDelegate_iPhone *)         [[UIApplicationsharedApplication]
delegate];

    // Setting *settinfo= appDelegate.settingObj;

    if(newState !=state){

         [staterelease];

         state = [newStateretain];

    }

}

 

IOS 函数内 autorelease release


在一个有reurn 返回值的函数里 如果申请了一段内存的话(alloc 或者copy) 这个时候不能够release  只能够使用autorelease

在返回到那个被接受到的指针里,由它去进行释放!!

如果是self.obj(或者某些类对应的   SomeClass.obj)这种类型的,就需要把self.去掉(因为这样子的申请出来的内存引用计数会被retain+1了)

如果必须要有类名 SomeClass.   则需要用autorelease!


The kalView analyze


首先搞清楚view的层级关系,怎么样子可以加载在一个view中,kalview又有多少种subview。

首先这里KalView可以知道kalview直接复制到self.view上了。。

KalView *kalView = [[KalViewalloc]
initWithFrame:[[UIScreenmainScreen]
applicationFrame] delegate:self
logic:logic];

self.view = kalView;


再分析, kalview里有subview种类:headerview、grid view、tableview

这里的内容就比较复杂,headerview直接加在self里、gridview、tableview 被加载在self.contentview中,当然contentview

是被加在self里的。。

这里的逻辑清晰了之后,就是gridview的了。

Gridview的subview里有MonthView,MonthView的subview里有KalTitleView …

大致梳理下就是这样的层级关系!

再看下logic:

kalView中定义了两个logic相关的对象,delegate与logic。

KalGridView中定义了两个logic相关的对象,delegate与logic

说明了什么? 有什么作用?

分析了代码后发现,原来这两处的logic相关的对象是相同的,在kalview init 、gridview init中被赋值

首先看下delegate 这个能够做什么呢? 可以考虑成一个存在的“第三方”,第三方内存在了一些方法,方法Ⅰ,方法2,方法3.。。

kalview ,gridview里的对象的执行的delegate,就找到了这些函数了。

但是实际的执行点是在那里的呢? 就是谁代理,谁调用,被calendarviewcongroller的self真正执行了。。

so,this is delegate。。

等等,CalendarViewController好像被说的太少了,它这里做了什么操作的呢? 我们到h、m里看下,与KalViewDelegate相关的在.h里只有这样

@class KalLogic,KalDate;

@interface CalendarViewController :
UIViewController

<

KalViewDelegate,

KalDataSourceCallbacks,

UITableViewDelegate

so,在calendarviewcontroller.m里init时候with delegate self就不难理解了,真正执行的是calendarviewcontroller,而那两个都是发发号令,做做指挥,喝喝茶,看看报纸,浏览浏览网页,看看妹纸。。。抱歉,我扯淡扯多了!

还得说下logic:

吃饭先,未完待续。。。

上回说到了delegate,现在讲下logic,我搜索了下logic,发现其在4个类内有用到,calendarviewcontroller,kalview,gridview,当然还有他自己kalogic。

大致看了下,其就是一个控制的属性,想一张网一样连接其他的类的关系,并处理各种关系引起的各种问题,这个就是logic处理的内容。