1.sandBox的目錄結構
home(沙盒名字-一串字符數字混合)
Documents
Library
Caches
Preferences
tmp
vcD4KPHA+MaOpu/HIoWhvbWXEv8K8o7ogaG9tZaOoybO60MP719Yt0ru0rtfWt/vK/dfWu+y6z6OpPC9wPgo8cD4gICBOU1N0cmluZyAqaG9tZURpcmVjdG9yeSA9IE5TSG9tZURJcmVjdG9yeaOoo6mjuzwvcD4KPHA+ICAyMDEyLTA2LTE3IDE0OjAwOjA2LjA5OCBJb3NTYW5kYm94WzM1MzY6ZjgwM10gL1VzZXJzL3JvbmdmemgvTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0L2lQaG9uZSBTaW11bGF0b3IvNS4xL0FwcGxpY2F0aW9ucy8zQjhFQzc4QS01RUVFLTRDMkYtQjBDQi00QzNGMDJCOTk2RDIgICA8L3A+CjxwPjxicj4KPC9wPgo8cD4yo6m78cihZG9jdW1lbnTEv8K8PC9wPgo8cD5OU0FycmF5ICpwYXRocyA9IE5TU2VhcmNocGF0aEZvckRpcmVjdGlvcmllc0luRG9tYWlucyhOU0RvY3VtZW50RElyZWN0b3J5LE5TVXNlckRvbWFpbk1hc2ssWUVTKTs8L3A+CjxwPk5TU3RyaW5nICpwYXRoID0gW3BhdGhzIG9iamVjdEF0SW5kZXg6MF07PC9wPgo8cD4yMDEyLTA2LTE3IDE0OjAwOjA2LjA5OSBJb3NTYW5kYm94WzM1MzY6ZjgwM10gcGF0aDovVXNlcnMvcm9uZ2Z6aC9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvaVBob25lIFNpbXVsYXRvci81LjEvQXBwbGljYXRpb25zLzNCOEVDNzhBLTVFRUUtNEMyRi1CMENCLTRDM0YwMkI5OTZEMi9Eb2N1bWVudHM8YnI+CjwvcD4KPHA+PGJyPgo8L3A+CjxwPjMpu/HIoWNhY2hlxL/CvDwvcD4KPHA+ICAgTlNBcnJheSAqcGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyhOU0NhY2hlc0RpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTKTs8YnI+CiAgICBOU1N0cmluZyAqcGF0aCA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOzxicj4KICAgIDVFRUUtNEMyRi1CMENCLTRDM0YwMkI5OTZEMi9MaWJyYXJ5L0NhY2hlcyA8YnI+CjwvcD4KPHA+PGJyPgo8L3A+CjxwPjSjqbvxyKEgTGlicmFyecS/wrw8L3A+CjxwPiAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwKIE5TVXNlckRvbWFpbk1hc2ssIFlFUyk7PGJyPgogICAgTlNTdHJpbmcgKnBhdGggPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTs8YnI+CiAgICBOU0xvZyhA”%@”, path);
5)獲取Tmp目錄
NSString *tmpStr = NSTemporaryDirectory();
s/g7/246bh79130zblw0yjjtc55cw0000gn/T/
7介紹一下 pushing的整體流程
作用:NSNotificationCenter是專門供程序中不同類間的消息通信而設置的.
註冊通知:即要在什麼地方接受消息
[NSnotificationCenter defaultCenter]addObserver:self selector:@selector(dosmething:) name:@“name”
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mytest:) name:@”
mytest” object:nil];
註冊通知,作為受體。
參數介紹:
addObserver: 觀察者,即在什麼地方接收通知;
selector: 收到通知後調用何種方法;
name: 通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
發送通知:調用觀察者處的方法。
[[NSNotificationCenter defaultCenter] postNotificationName:@”mytest” object:searchFriendArray];
參數:
postNotificationName:通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
object:傳遞的參數
註冊方法的寫法:
– (void) mytest:(NSNotification*)
notification
{
id obj = [notification object];//獲取到傳遞的對象
}
8.關於block的理解,需要註意什麼?自定義一個塊A,參數為int,返回值為int
blcok 如果想遞歸調用,代碼塊變量必須是靜態變量或者全局變量。
代碼塊本質上是和其他變量類似。不同的是,代碼塊存儲的數據是一個函數體。使用代碼塊是,你可以像調用其他標準函數一樣,傳入參數數,並得到返回值。
int (^A)(int) = ^(int num){ return num*num};
9。#import 和#include的區別,ios7中的@import呢?
[
下面的總結:#import#include基本相同,一般來說,#include是用於c,c++中的。可能導致重復引用。而#import則更多是用在oc中,且避免勒重復引用的問題。在ios7中添加瞭新語法 @import,和#improt的作用大致相同,但是缺點是不能使用在第三方庫和自定義的類中。
]
#include
#include :用於對系統文件的引用,編譯器會在系統文件目錄下去查找該文件。
#include “xx.h”:用於對用戶自定義的文件的引用,編譯器首先會去用戶目錄下查找,然後去安裝目錄,最後去系統目錄查找。
註:使用include要註意重復引用的問題:
class A,class B都引用瞭class C,class D若引用class A與class B,就會報重復引用的錯誤。
#import
功能與include基本相同,不過它避免瞭重復引用的問題。所以在OC中我們基本用的都是import。
{
對應新增語法:@import,導入系統頭文件,例如:@import MapKit; 或者庫的部分頭文件:@import UIKit.UIView;
優點:不需要再在Build Phases裡的Link Binary With Libraries添加系統framework文件;缺點:不支持自定義或第三方庫
}
@class
@class就是告訴編譯器有這個類存在,但是類是如何實現的不用告訴編譯器.若.m文件用到瞭這個類,還是要在.m文件匯總import這個類的。
既然這樣,為什麼不直接在頭文件中import呢,舉個例子:
class A引用瞭class B,class B引用瞭class C…. , class A,B,C…的頭文件又import瞭很多文件,那麼 import瞭A的話,編譯器就需要編譯大量的文件,編譯時間就會增加。
難道頭文件中都是用@class嗎?當然不是,有時也是需要#import的,那麼什麼時候該用什麼呢?
(1)一般如果有繼承關系的用#import,如B是A的子類那麼在B中聲明A時用#import;
(2) 另外就是如果有循環依賴關系,如:A->B,B->A這樣相互依賴時,如果在兩個文件的頭文件中用#import分別聲明對方,那麼就會出現頭文件循環利用的錯誤,這時在頭文件中用@class聲明就不會出錯;
(3)還有就是自定義代理的時候,如果在頭文件中想聲明代理的話如@interface SecondViewController:UIViewController時應用#import不然的話會出錯誤,註意XXXXDelegate是自定義的。
10.UIImageView可以直接點擊麼 ?怎麼樣才能做到可以點擊?
正常情況下是不可以直接點擊的。
隻有設置UIImageView的屬性 userInteractionEnabled = yes才可以點擊、。