readwrite:是可讀可寫特性,需要產生getter和setter方法;readonly是之都特性,只會產生getter方法,不會產生setter方法,不希望屬性在類外改變時候使用;alloc 對象分配後引用計數為1retain 對象的引用計數+1copy 一個對象變成新的對象(新記憶體位址) 引用計數為1
iOS7中,不僅應用的風格有一定的變化,狀態列變化比較大,我們可以看到UIViewController的狀態列與導覽列基本是一體的。因此UIVIEWCONTROLLER的hide/show狀態的方法也跟其他版本的不一樣了。 在iOS7以前的版本,hide/show是通過以下代碼實現[[UIApplication sharedApplication] setStatusBarHidden:YES(NO) withAnimation:UIStatusBarAnimationSlide]
:就是把第一個介面的值傳給第二個介面顯示,其簡單實現方法 //建立第二個VC TRsceondViewController* sceondViewController = [[TRsceondViewController alloc]initWithNibName:@"TRsceondViewController" bundle:nil];
升級了xcode5, 適配ios7. 各種坑爹問題..今天又碰到了一個。textview的高度無法正確計算.(之前可以通過textView.contentSize.height來擷取一個float類型的高度)但是在ios7上,發現這玩意不管用了。調試了好多遍,發現列印出來的結果都是最早設定的frame高度。 無法動態改變。蛋疼的。後來找了一遍,才發現一種解決辦法。 if (isIos7System) { CGRect txtFrame =
iOS Dev (16) 一些 OC 的基礎知識點小節之一作者:CSDN 大銳哥部落格:http://blog.csdn.net/prevention1 靜態方法中的 self在靜態方法(類方法)中使用 self ,self 表示這個類。比如以下兩個方法的意思是一樣的: + (void) wtf { [self alloc]; } + (void) wtf { [ClassName alloc]; }2
隨著HTML5的快速發展,以及大家對於跨平台的移動App開發的渴望,使用PhoneGap開發的需求也會越來越多。根據網路上的資料,並結合自己的實踐,搭建了基於phoneGap的iOS開發環境,把步驟整理出來,持久化到部落格,以免遺忘!一:環境介紹(1)phoneGap 2.9.0 :http://phonegap.com/install/(2)xcode 4.5.2二:搭建步驟(1)phonegap-2.9.0解壓到
之前一直很想好好的研究一下coreText,現在正好有這個機會,特此記錄一下
iOS Dev (22) 檔案、路徑作者:CSDN 大銳哥部落格:http://blog.csdn.net/prevention沙箱 Sandbox 的路徑和其他很多應用平台一樣,iOS 也限定了每個 APP 的活動範圍,只能被限定在一個硬碟空間裡,即 Sandbox。如何拿到這個 Sandbox。很容易:NSString *outDirPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];這個
1 什麼是block iOS SDK 4.0開始,Apple引入了block這一特性。字面上說,block就是一個代碼塊,但是它的神奇之處在於在內聯(inline)執行的時候(這和C++很像)還可以傳遞參數。同時block本身也可以被作為參數在方法和函數間傳遞,這就給予了block無限的可能。
1、 監控搖一搖動作 1> 讓當前視圖控制器成為第一響應者 // 必須先讓當前視圖控制器成為第一響應者才能響應動作時間 [self becomeFirstResponder]; 2> 實現回應程式法-繼承自UIResponder的方法 複製代碼1 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event2 {3 &
iOS開發中實現多線程有三種方式:NSThread,NSOperation和GCD。本文介紹三種方式的具體實現。1.NSThread初始化一個線程有兩種方式: /*******NSObject的類方法**************/ [self performSelectorInBackground:@selector(secondMethod) withObject:self]; /*******NSThread,有兩種方法**********/ //1.類方法
程式員最艱巨的任務跟編寫代碼沒有多少關係。編碼是邏輯思路的一種實踐,這跟程式員日常工作中的其它任務比起來相對簡單。如果你認為自己還是一個水平一般的程式員,在你真正的能進入到高手行列前,請確保你已經克服了下列晉級的障礙。1. 解釋你在幹什麼解釋軟體開發過程是一個很困難的事情。那些非程式員職業的人也許知道很多關於編程的事情,但很顯然,他們不會編程。對於他們來說,我們的生活就是在一間黑暗的屋子裡趴在鍵盤前消耗著咖啡。你會在你的朋友、家人和同事中遇到這樣的人,他會認為編碼不是一個正確的職業。2.
iOS中字典實際上是無序的,那麼如果我們要對字典進行排序要怎麼做呢?代碼如下:@interface OrderedDictionary : NSMutableDictionary{NSMutableDictionary *dictionary;NSMutableArray *array;}//插入一個位置- (void)insertObject:(id)anObject forKey:(id)aKey atIndex:(NSUInteger)anIndex;//取得某個位置的obj-
資料需要儲存 關係型資料庫(也是目前移動用戶端的主流資料庫) 幾種儲存類型 : 表示該值為NULL值: 無符號整型值: 浮點值: 文本字串: 位元據(比如檔案) •在並匯入主標頭檔,這是一個的庫 NSString *dbPath = [ NSLog( _db = (SQLITE_
IOS動畫分為屬性動畫和過渡動畫。ios4.0之前屬性動畫內容和設定主要放在方括弧中既:如下[UIView beginAnimations:@move context:@aa];中間部分設定動畫內容和屬性[UIView commitAnimations];詳見代碼如下 [UIView beginAnimations:@move context:@aa]; [UIView setAnimationDuration:1];//設定動畫時間 CGPoint point = self.
1.建立single view工程,匯入MediaPlayer庫,匯入一個視頻檔案test1.mp42.ViewController.h#import #import @interface ViewController : UIViewController { MPMoviePlayerViewController *_playerVC;}@end2.ViewController.m#import "ViewController.h"@implementation
1.前文 上次用SQLite3實現了資料管理,這次準備用CoreData來實現。Core Data 是iOS SDK 裡的一個很強大的架構,允許程式員以物件導向的方式儲存和管理資料。使用Core
NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url ];NSError *error = nil;NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
1.建立single view工程,匯入AVFoundation庫2.ViewController.xib3.ViewController.h檔案#import #import @interface ViewController : UIViewController { //進度 IBOutlet UISlider *_proSlider; //聲道 IBOutlet UISlider *_panSlider; //速度 IBOutlet UISlider *
今天幹活的時候,遇到了這樣一個問題..實在是太粗心了。mark下,2014-01-05 11:44:34.762 softwareApp[1435:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[JKDictionary setObject:forKey:]: mutating method sent to immutable object'