不明白的地方,做个记录




 

21.多线程 ,后台进程




已解决:

1.popview不大会用,

算是会用了吧,看了cook book 。

2.有些类 为什么要用 retain  为什么用assign

有两个例子,一个是反面的http://www.cocoachina.com/newbie/tutorial/2012/0911/4732.html

还有个正面的,是cook book 上面的pop view 的例子

(有个朦胧的映像)

3autorelease 的具体用法 ,还有跟runloop的关系,runloop的含义

随便搜了一篇,以后看

http://blog.csdn.net/lovegarfield/article/details/8088639


有了新的理解

http://blog.sina.com.cn/s/blog_8c87ba3b0100tgfs.html



4.异常的分类,

搜索了一下,没找到个所以然

7.网络 

看一下cookbook 吧

8.xml json

json 差不多了,xml觉得没有json好使。

9.set nil 的作用

这是文章的出处,重温了一下

http://www.raywenderlich.com/2712/using-properties-in-objective-c-tutorial

For each of your instance variables, call “self.xxx = nil” in dealloc. If it’s an outlet or something you created in viewDidLoad, do the same in viewDidUnload.

这是具体的解释,至于知否有效,只能是看用工具检测的结果了。

10.手机版 和 pad 版 如何兼容。

现在知道点了

已经更新到小技巧里面。

6.推送通知

文章看了一遍,不过没有试过。

11.堆栈之类的,内存变量存储方式

了解了个大概。

http://mikixiyou.iteye.com/blog/1595230

谷歌搜索“objective-c stack heap” 还是能看到一些东西的

http://www.maxi-pedia.com/what+is+heap+and+stack

12.静态库

专门写了篇文章,关于这个



13.保存app的状态,可以用NSUserDefault

试了一下,果然超级好用,比全局变量方便很多啊。

基本使用:

 

创建一个user defaults方法有多个,最简单得快速创建方法:

   NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];

 

添加数据到 user defaults:

   [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];

也可以添加基本数据类型int, float, bool等,有相应得方法

   [accountDefaults setBool:YES forKey:UserDefaultBoolKey];

 

从user defaults中获取数据:

   [accountDefaults objectForKey:NCUserDefaultNameKey]

  [accountDefaults boolForKey: UserDefaultBoolKey];

 

要点:

NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。

针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

 

问题:

网上说,不调用synchonize方法,数据不会保存,测试发现保存了,没有出现这样的情况。

环境是iOS 5.0. 可能和ios有关。

为了保险,还是在

- (void)applicationDidEnterBackground:(UIApplication *)application

或者 

- (void)applicationWillTerminate:(UIApplication *)applicationtion

调用一下。


http://strox.iteye.com/blog/1319721

14.view 的一些操作,也不熟

放一篇中文的http://www.cnblogs.com/likwo/archive/2011/06/18/2084192.html

再来篇英文的

View Programming Guide for iOS

http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40009503-CH2-SW1

正好碰到问题了,疑似因为

transform

属性 或者

position

,就顺便看一下,

cook  book 有专门关于view的,看完了

15.公钥私钥,证书之类的知识 

p12文件之类的

http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood

发布也不大懂,发布没看。

,看完多少明白点了,就是就是没试出来。

16.类似于 extern Aut *aut

红色的那本书,171页,讲的很详细,翻译的还不错。

外部变量是可以被其他任何方法或函数访问和修改的变量。在需要访问外部变量 的模块中,变量声明和普通方式一样,声明前面加个关键字extern。

有这么个原则,变量必须定义在源文件中的某个位置。这是通过在所有方法和函数外部声明变量,并且前面不加关键字extern。

声明不会引起分配变量的存储空间,而定义会引起变量存储空间的分配。

17.

  NSDictionary *userInfo = [paramNotification userInfo];

  

    

  NSValue *animationCurveObject = 

    [userInfo valueForKey:UIKeyboardAnimationCurveUserInfoKey];

这个

NSValue 不知道跟NSNumber有什么区别?

先理解到这份上,碰到问题再说,目前的个人理解是可以用NSValue将struct存到NSArray和NSDictionary中。
实际上NSMunber是NSValue的子类

Overview

An NSValue object is a simple container for a single C or Objective-C data item. It can hold any of the scalar types such as int, float, and char, as well as pointers, structures, and object ids. The purpose of this class is to allow items of such data types to be added to collections such as instances of NSArray and NSSet, which require their elements to be objects. NSValue objects are always immutable.



复制代码
  //声明并初始化一个struct
    NSRect rtc = NSMakeRect(12, 32, 433, 343);
    //创建一个NSValue:
    //value:对象地址
    //objCType:通常是一个用来描述对象类型和大小的字符串,@encode会自动生成一个合适的描述字符串
    NSValue *value = [NSValue valueWithBytes:&rtc objCType:@encode(NSRect)];
    //把value添加到数组中
    NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
    [array addObject:value];
    
    NSRect rt;
    //从数组中取到NSValue,因为只添加了一个,所以小标是0
    NSValue *v = [array objectAtIndex:0];
    //从value中取得一个NSRect,虽然返回值是void,但其实是它是利用指针返回值的
    [v getValue:&rt];
    //输出结果
    NSLog(@"%f %f %f %f", rt.origin.x, rt.origin.y, rt.size.height, rt.size.width);
    
    //用快速枚举遍历array并输出NSValue中struct属性的值
    for(NSValue *v in array)
    {
        NSRect rt;
        [v getValue:&rt];
        NSLog(@"%f %f %f %f", rt.origin.x, rt.origin.y, rt.size.height, rt.size.width);
    }
    
    
    /便捷的struct转换成NAValue方式
    //声明并初始化一个struct
    NSRect rtc1 = NSMakeRect(100, 200, 300, 400);
    //创建一个NSValue
    NSValue *value1 = [NSValue valueWithRect:rtc1];
    //把value1添加到数组中
    NSMutableArray *array1 = [NSMutableArray arrayWithCapacity:10];
    [array1 addObject:value1];
    NSRect rt1 = [value1 rectValue];
    //输出结果
    NSLog(@"%f %f %f %f", rt1.origin.x, rt1.origin.y, rt1.size.height, rt1.size.width);
复制代码

 



18 navigationController 也不会用 书上相关知识点意见看了一遍,应该差不多了吧

19.

@class FirstViewController;

不知道这个 @class什么作用。

看了红色那本书的137页,差不多明白点了。

还有另外一个选择是导入头文件FirstViewController.h

使用@class FirstViewController指令提高了效率,因为编译器不需要处理整个FirstViewController文件。而只需要知道是一个类名字。如果需要引用类中的方法,@class指令是不够的,因为编译器需要更多的消息。需要知道方法中有多少参数。他们是什么类型,方法的返回类型是什么?

如果需要引用

 

20.怎么实现诸如NSDictionary NSArray 之容器类对象的深拷贝,

参看我的文章How to copy an object in objective c

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值