小札记

来源:互联网 发布:政治体制改革 知乎 编辑:程序博客网 时间:2024/05/16 11:20

1,不能实时检测网络。即只在becomeActivity时检测---------可以通过审核。

2,在appdelegate中加入模块VC,原因---实现一种状态存贮方式,单例模式。此时推出VC时,需在back中clear()数据--->重用性的VC,避免下次用时仍存在上次的数据未清理.

3,若用nib文件时做继承是否可以,有什么方法。---不可以,代码实现之。

4,[self.timer invalidate];是否可行?可行,销毁NSTimer。

  又见的另外一种销毁timer的方式(未验证):[_timerinvalidate];[_timerrelease];_timer =nil;

5,[self.view addsubview:self.anView];问题---anView的retainCount值是增加了1,self.view销毁时anView的retainCount减1。

6,self.view.window的意义-->判定其是否可视;self.view.superView->判定其是否被add到某view上。

7,page1加载完成,在加载page2时如果断网,则无法继续加载问题的解决方案?---在加载page2失败时重新加载之.

8,IBOutlet的生命周期(在非ARC下):

关于iboutlet,

IBOutlet img*one;
@property(non,retain)IBOoutlet img*one;

@synthsize one;

viewdidUnload{
[super unload];
self.one=nil;
}

dealloc{
[one release];
[super dealloc];
}

9,当app升级时,存在document路径下的东西会被保存的(尚未证实),另外userdefaults也可以存储一点数据(正确,已证实之)。如果用户删除了程序再安装的话,肯定是丢数据的。

10,appdelegate中当ios是5.0或者是5.0.1时,网络不通时的alert有设置按钮,否则无--已验证。
  因为只有5.0和5.0.1的IOS才响应prefs:等的事件。解决:只有在5.0和5.0.1中调用系统的设置命令才有效,不适用于其它版本--正确。

11,ios6.0以上,statusbar颜色会随着app导航栏的颜色变化而变化,可以为之认为静态设定一种固有颜色。--证实之
认为更改:

1,plist中修改相关属性。

2,代码实现:if ([user.iOSversion floatValue] > 5.1)
    {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
    }


12,关于iPhone图标Icon,注意裁剪时图标周围不要出现锯齿,否则真机调试时,阴影会很明显。

13,获取某一UITableView中的多种cell之一时,方法:1,用tag标记;2,更优的解决方案:判断其reuseIdentifier即可。

14,运用CALAyer时,若有卡顿感,可能与之有关。原因不明。

15,在i++++i之间,优先选择++i,效率更高。

16,模拟器中app的路径:资源库-->App Support-->iPhone Simulator-->6.0-->Applications-->75BCF894-BCAD-4507-83A7-5D2453344463

17,nib中一个Btn,选中它并且在Editor菜单里将至设置为Size to Fit Content,此选项位置?---自己添加,默认可能未加上。view->add Editor

18,内存警告后,ctler会重新reload。主要是除了IBOutlet之外的subView,若无retain就不能再次使用了。---ARC解决了此问题。

19,诸如gtmhttpFetcher,多次return auto变量。-没有关系,不产生泄露。

20,SBJson可以自动支持arc,jsonKit不支持。(未证)

21,

int numSpiders=[spiderscount];

    for(int i=0;i<numSpiders;i++)

    {

    }

诸如此类,不课在for里条用方法,这样可以大大节省cpu。

22,递加tableVIew中cell的方式:

1,reloadData

2,逐个增加:

[self.players addObject:anPlayer];---a,数据源


NSIndexPath *indexPath = [NSIndexPathindexPathForRow:[self.playerscount] - 1  inSection:0];

[self.tableViewinsertRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];--b,table上的数据动态增加。

注意:a和b要同步增加!删除一个cell类似。

23,

viewcontroller加了NSTimer后,dealloc方法不会调用

因为
[NSTimer scheduledTimerWithTimeInterval:.1                         

                                     target:self                     

                                   selector:nil 

                                   userInfo:nil 

                                    repeats:YES];

把self的retainCount加一。

这时候需要在界面不显示的时候调用:
[timer invalidate];
来对计时器进行销毁

24,关于在一个方法中返回对象时,需要是一个autorelease的对象,然后引用时需要retain之,否则会在下一个runloop中释放掉{可以理解为在该方法外都是危险的},造成不知缘故的崩溃。runloop即一个动作执行的方法总和,例如顺序执行的一系列函数,一个按钮点击事件等。均是一个单一的runloop。

25,当在一个viewCtl中声明一个对象时,系统会默认为其初始化,调用方法不会崩溃。但是在其成员函数中声明如NSDictionary *dic;调用dic相关方法时会崩溃掉,原因是没有初始化,不仅不为nil,连野指针都不算,即没有被分配内存空间。