iOS開發筆記

一、能夠根據類的成員變量名稱來讀取內容,類的成員變量的值
定義一個:Person類
@interface Person : NSObject
@property(nonatomic,strong)NSString *name;
@property(nonatomic)NSUInteger age;
@property(nonatomic,strong)NSString *aderss;
+(NSArray *)demoData;//demoData:返回一個數組,數組裏包含了N個Person實例對象
@end
 
NSArray *pps=[Person demoData];//獲取Person數據
NSLog(@"%@",[pps description]);//輸出,輸出結果是Person對象的地址(沒有輸出對象成員變量的值)
NSArray *str=[pps valueForKey:@"name];//經過關鍵字name讀取,全部對象的name的值
NSLog(@"%@",[str description]);
 
二、代碼設置TableViewCell的行高
註冊Cell:
[self.tableView registerClass:[UITableViewCell classforCellReuseIdentifier:MYCELL];
//第三問
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    TRMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
//注意不能有forIndexPath:indexPath,否則會報錯
//cell=[tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath];
    cell.message self.allMessages[indexPath.row];
    return cell;
}
//設定每行的行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    //找到indexPath對應的cell,返回cellbounds中的height
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    return cell.bounds.size.height;
}
 
三、判斷數組是否存在某對象
- (BOOL)containsObject:(id)anObject
如:
BOOL flage=[@[@"gugu",@"kuku",@"huihui",@"meimei"containsObject:@"xxxx"];
 
四、NSNotificationCenter:通知事件類型彙總
格式:UI . . . Notification
1)關於應用程序的通知:以UIApplication開頭,以Notification結束,結構:UIApplication . . . Notification
a、UIApplicationWillResignActiveNotification:應用程序將要進入後臺
 
2)鍵盤的通知: UIKeyboard . . . Notification
a、UIKeyboardDidShowNotification:鍵盤已經顯示
 
時間:2015年07月06日
一、將NSString轉換成C語言類型的簡單方法:
NSString *str=@「abcdef」;
const char *aa=str.UTF8String;//這個方法是轉換成const char *類型的
 
二、**:雙指針,通常是用來取回值。
 
時間:2015年07月07日(晚
一、今晚發現的,今天在寫一個數據庫操做的程序,發現拖到項目裏的數據庫在編譯的沒有copy到APP的目錄下(NSBundle)。
 
時間:2015年07月08日(上午
一、延時:
[NSThread sleepForTimeInterval:1];//線程延時1秒
二、獲取當前的線程(通用)
[NSThread currentThread];
 
時間:2015年07月14日(下午
一、版本號:
NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE7_0:  //7.0的版本
#define NSURLSESSION_AVAILABLE 10_10://10_10:這表示10.10的版本
 
 
時間:2015年07月21日(上午
一、從路徑中獲取文件名稱
NSString *name=[iconString lastPathComponent];//Component:組成、部分
NSLog(@"filePath:%@",name);
輸出結果:wsymbol_0006_mist.png
 
二、對字典的操做:讀、寫
直接使用[],而不是使用xxx方法
self.images[iconSting]=image;//寫入一條數據:iconSting是key,image是值
UIImage *image=self.images[gaWeather.iconURLStr];//讀取
 
時間:2015年07月22日(上午
一、使用字典快速給對象賦值
一個對象:
@interface GADeal : NSObject
 
@property(nonatomic,strong)NSString *title;
@property(nonatomic,strong)NSString *detail;
 
@end
//dic是一個字典,
GADeal *gaDeal=[[GADeal alloc]init];
[gaDeal setValuesForKeysWithDictionary:dic];//經過字典的key對應gaDeal對象的成員變量,會自動匹配,並賦值
 
//注意:
一、類成員變量名稱要和字典的key相同,否則查找不到
二、類的成員變量個數要小於字典key的個數
三、若是字典的key名稱(如關鍵字)和類的成員變量(不多是關鍵字)衝突, 就必須重寫- (void)setValue:(id)value forUndefinedKey:(NSString *)key方法
 
二、可變的類必定要初始化。
 
時間:2015年07月24日(下午
 一、暫停:
     sleep(2);
 
時間:2015年07月27日(上午
一、監聽:KVC模型
    /*
     *  mainView添加一個觀察者,mainView是一個UIView類型
     *  KeyPath:監聽frame這個屬性,只能監聽對象的屬性
     *  options:監聽新值的改變
     */
    [mainView addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];
// 重寫這個方法,當_mainViewframe屬性改變的時候就會調用
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"%@"NSStringFromCGRect(mainView.frame));
// 添加代碼
}
 
二、查詢執行了哪一個方法(函數)
NSLog(@"%s", __func__);//用來查詢當前執行的方法,寫在哪,就會輸出哪一個方法/函數的名稱
 
三、獲取設備信息
//獲取系統版本號
double vertion=[[UIDevice currentDevice].systemVersion doubleValue];
 
 
一、循環遍歷數組
定義一個成員變量self.currentIndex
self.currentIndex++;//成員變量自+1
//成員變量取餘數組個數,返回的就是0 — self.fileNames.count - 1的值。
self.currentIndex %= self.fileNames.count ;
 
不使用第三方的參數,實現兩個數的交換
方式1、
func swap(inout num1:Int,inout num2:Int){
    num1 = num1 + num2
    num2 = num1 - num2
    num1 = num1 - num2
}
方式2、異或
func swap(inout num1:Int,inout num2:Int){
    num1 = num1 ^ num2
    num2 = num1 ^ num2
    num1 = num1 ^ num2
}

 define文件數據庫

一、只是文本替換:
//通知中心
#define GANotificationCenter [NSNotificationCenter defaultCenter]
 
二、帶參數替換,在括號內的就是參數,沒有數據類型。
#define GAString(str) [ NSString stringWithFormat:@" %@ ",str]
 
 
 
使用工具: Cornerstone
一、svn的項目管理
最重要的是那個隱藏的文件:.svn文件夾,只要有這個文件夾,只要相同的項目,均可以進行替換。在這個文件中存儲了全部對項目的信息、內容和操做的數據。
 
.svn文件夾的位置不能動,移動到別的地方,Cornerstone搜索不到就會報錯。但咱們能夠移動其餘文件。由於Cornerstone是根據.svn文件夾中存儲的數據來檢索項目的。
 
使用cornerstone遇到的問題:
使用cocopods的管理第三方庫,有的文件(特別注意 * .a文件)沒有上傳到服務器,致使別人checkout後,就沒有文件致使xcode報錯。
 
進一步分析:在本地的項目沒有問題,上傳cornerstone後再checkout後就出錯的根本緣由就是:cornerstone的設置問題
相關文章
相關標籤/搜索