① 有沒有好的工程管理app推薦
智建雲工程管理APP是國內最早最成熟,專注於工程現場的移動管理App,主要應用在工程建造過程中的質量控制,支持多種專業和多種業態。工程管理App能夠提供更加高效、便捷、標准化的工作項和指導手冊,讓工作更加規范和統一,管理層可以實時查看查驗進度和問題分析,減免了繁瑣的匯報,讓所有問題有跡可循,便於追溯,最終實現質量提升、降低溝通和返工成本。
② 移動互聯應用開發是什麼專業
1.移動互聯應用開發專業是以培養iOS、Android開發技術為基礎,在互聯網、信息、金融、傳媒等各個領域,從事移動智能設備軟體的設計、開發、測試、維護、運營、管理等相關工作的高素質應用型技術人才。
2.主要學習的課程有C程序設計、數據結構、linux網路解析、Java程序設計、資料庫應用、JavaEE基礎技術、 軟體工程與UML、Android應用開發、移動游戲開發基礎、Object-C應用開發、Cocos2D引擎應用、iOS項目實戰、移動技術高級應用開發等。
(2)ios工程管理擴展閱讀
移動互聯網應用繽紛多彩,娛樂、商務、信息服務等各種各樣應用開始滲入人們的基本生活。手機電視、視頻通話、手機音樂下載、手機游戲、手機IM、移動搜索、移動支付等移動數據業務開始帶給用戶新的體驗。
目前以移動游戲、移動音樂等娛樂型業務為主。貝葉思調研數據表明,手機游戲市場吸引了越來越多的用戶參與,其收入比重達到29.7%,其次為移動音樂,占據27.4%的市場份額;接下來依次為移動IM、手機視頻、移動廣告、移動搜索以及移動支付。
近年來,手機游戲一直是投資者關注的重點領域,同時也是移動互聯網產業中發展最早也最為成熟的一塊領域,用戶習慣逐年養成,但在產品種類、創意開發以及運營模式上仍存在一定欠缺,因此這一市場仍存在巨大發展潛力。3G商用後,網路和終端提升加快,加上兩網融合的趨勢,內容服務逐步豐富。
③ ios 在哪裡設置工程支持arc與否
舊工程配置arc方案:
1,直接在targets->build phases中修改compiler Flags,是否支持arc。添加:-fobjc-arc,就可以讓舊項目支持arc。如果想讓原來支持arc的不使用arc則添加-fno-objc-arc
2,因為在build phases中可以改變是否支持arc,所以應該在代碼中添加判斷是否支持arc,這樣不管以後.m的arc是否改變,都不用再次調整代碼。
下面是一個.h文件(附件中也上傳了.h),整合了arc的各種屬性、release判斷,直接#import在你想使用arc的類中即可。
#ifndef paixiu_PXISARC_h
#define paixiu_PXISARC_h
#ifndef PX_STRONG
#if __has_feature(objc_arc)
#define PX_STRONG strong
#else
#define PX_STRONG retain
#endif
#endif
#ifndef PX_WEAK
#if __has_feature(objc_arc_weak)
#define PX_WEAK weak
#elif __has_feature(objc_arc)
#define PX_WEAK unsafe_unretained
#else
#define PX_WEAK assign
#endif
#endif
#if __has_feature(objc_arc)
#define PX_AUTORELEASE(expression) expression
#define PX_RELEASE(expression) expression
#define PX_RETAIN(expression) expression
#else
#define PX_AUTORELEASE(expression) [expression autorelease]
#define PX_RELEASE(expression) [expression release]
#define PX_RETAIN(expression) [expression retain]
#endif
#endif
說明:在arc中,strong對應原來的retain與,weak對應原來的assign。
EX:舉例使用autorelease:
NSArray *testArray = PX_AUTORELEASE([[NSArray alloc] init]);
//如果支持arc,testArray就只是alloc init,release的事情由系統來做。
//如果不支持arc,那這條語句相當於:
NSArray *testArray = [[[NSArray alloc] init] autorelease];
這樣不管以後改不改arc,都不會內存泄漏了 .
所以,arc的使用有兩點:
A:在build phases中修改compiler Flags值。
B:在代碼中判斷是否支持arc,包括對屬性(property)、釋放(release)的判斷。
3,在dealloc中需要這樣做:
類如果注冊了通知(觀察者模式),需要remove掉。這個不管是否支持arc,都必須要做的。
- (void)dealloc {
[[] removeObserver:self];//如果注冊了通知的話。
[self removeObserver:self forKeyPath:keyPath];//如果注冊了kvo的話。
#if !__has_feature(objc_arc) //在這里也需要判斷是否支持arc,支持的話就執行舊工程中該release的語句.
[array release]; //array代表alloc但沒有autorelease的變數
[super dealloc];
#endif
}
4,另外加點block的判斷,這個是在4.0以後有的,當然也可以不進行判斷,因為現在大多數都4.0以後了。
#if NS_BLOCKS_AVAILABLE
#endif總結:
1,arc的設置是在build phases中修改compiler Flags的值。
2,如果使用了arc,在你的代碼中不可以使用retain, release, autorelease,如果使用的話會報錯。
3,如果使用了arc,在@property聲明中,用strong和weak代替相應的retain, ,和assign。
4,如果使用了arc,NSAutoReleasePool也不能使用,測試發現,用@autoreleasepool 代替,不會編譯報錯。總之,一切你之前「背過」的那幾條內存管理規則,你都不用去管了。而且,個人感覺,用arc代碼清晰很多,而且效率也提高了些。
轉載
④ iOS 如何將整個APP工程打包成靜態庫
iOS是由蘋果公司為iPhone開發的操作系統。它主要是給iPhone、iPod touch以及iPad使用。就像其基於的Mac OS X操作系統一樣,它也是以Darwin為基礎的。原本這個系統名為iPhone OS,直到2010年6月7日WWDC大會上宣布改名為iOS。iOS的系統架構分為四個層次:核心操作系統層,核心服務層,媒體層,可輕觸層。系統操作佔用大概240MB的存儲器空間。
⑤ 知乎上的一個怎麼面試iOS工程師的問題
1.什麼是arc?(arc是為了解決什麼問題誕生的?)
首先解釋ARC: automatic reference counting自動引用計數。
ARC幾個要點:
在對象被創建時 retain count +1,在對象被release時 retain count -1.當retain count 為0 時,銷毀對象。
程序中加入autoreleasepool的對象會由系統自動加上autorelease方法,如果該對象引用計數為0,則銷毀。
那麼ARC是為了解決什麼問題誕生的呢?這個得追溯到MRC手動內存管理時代說起。
MRC下內存管理的缺點:
1.當我們要釋放一個堆內存時,首先要確定指向這個堆空間的指針都被release了。(避免提前釋放)
2.釋放指針指向的堆空間,首先要確定哪些指針指向同一個堆,這些指針只能釋放一次。(MRC下即誰創建,誰釋放,避免重復釋放)
3.模塊化操作時,對象可能被多個模塊創建和使用,不能確定最後由誰去釋放。
4.多線程操作時,不確定哪個線程最後使用完畢
2.請解釋以下keywords的區別: assign vs weak, __block vs __weak
assign適用於基本數據類型,weak是適用於NSObject對象,並且是一個弱引用。
assign其實也可以用來修飾對象,那麼我們為什麼不用它呢?因為被assign修飾的對象在釋放之後,指針的地址還是存在的,也就是說指針並沒有被置為nil。如果在後續的內存分配中,剛好分到了這塊地址,程序就會崩潰掉。
而weak修飾的對象在釋放之後,指針地址會被置為nil。所以現在一般弱引用就是用weak。
首先__block是用來修飾一個變數,這個變數就可以在block中被修改(參考block實現原理)
__block:使用__block修飾的變數在block代碼快中會被retain(ARC下,MRC下不會retain)
__weak:使用__weak修飾的變數不會在block代碼塊中被retain
同時,在ARC下,要避免block出現循環引用 __weak typedof(self)weakSelf = self;
3.__block在arc和非arc下含義一樣嗎?
是不一樣的。
在MRC中__block variable在block中使用是不會retain的
但是ARC中__block則是會Retain的。
取而代之的是用__weak或是__unsafe_unretained來更精確的描述weak reference的目的
其中前者只能在iOS5之後可以使用,但是比較好 (該物件release之後,此pointer會自動設成nil)
而後者是ARC的環境下為了相容4.x的解決方案。
所以上面的範例中
__block MyClass* temp = …; // MRC環境下使用
__weak MyClass* temp = …; // ARC但只支援iOS5.0以上的版本
__unsafe_retained MyClass* temp = …; //ARC且可以相容4.x以後的版本
4.使用nonatomic一定是線程安全的嗎?()
不是的。
atomic原子操作,系統會為setter方法加鎖。 具體使用 @synchronized(self){//code }
nonatomic不會為setter方法加鎖。
atomic:線程安全,需要消耗大量系統資源來為屬性加鎖
nonatomic:非線程安全,適合內存較小的移動設備
5.描述一個你遇到過的retain cycle例子。
block中的循環引用:一個viewController
@property (nonatomic,strong)HttpRequestHandler * handler;
@property (nonatomic,strong)NSData *data;
_handler = [httpRequestHandler sharedManager];
[ downloadData:^(id responseData){
_data = responseData;
}];
1
2
3
4
5
6
self 擁有_handler, _handler 擁有block, block擁有self(因為使用了self的_data屬性,block會 一份self)
解決方法:
__weak typedof(self)weakSelf = self
[ downloadData:^(id responseData){
weakSelf.data = responseData;
}];
1
2
3
4
6.+(void)load; +(void)initialize;有什麼用處?
在Objective-C中,runtime會自動調用每個類的兩個方法。+load會在類初始載入時調用,+initialize會在第一次調用類的類方法或實例方法之前被調用。這兩個方法是可選的,且只有在實現了它們時才會被調用。
共同點:兩個方法都只會被調用一次。
7.為什麼其他語言里叫函數調用, objective c里則是給對象發消息(或者談下對runtime的理解)
先來看看怎麼理解發送消息的含義:
曾經覺得Objc特別方便上手,面對著 Cocoa 中大量 API,只知道簡單的查文檔和調用。還記得初學 Objective-C 時把[receiver message]當成簡單的方法調用,而無視了「發送消息」這句話的深刻含義。於是[receiver message]會被編譯器轉化為:
objc_msgSend(receiver, selector)
如果消息含有參數,則為:
objc_msgSend(receiver, selector, arg1, arg2, ...)
如果消息的接收者能夠找到對應的selector,那麼就相當於直接執行了接收者這個對象的特定方法;否則,消息要麼被轉發,或是臨時向接收者動態添加這個selector對應的實現內容,要麼就乾脆玩完崩潰掉。
現在可以看出[receiver message]真的不是一個簡簡單單的方法調用。因為這只是在編譯階段確定了要向接收者發送message這條消息,而receive將要如何響應這條消息,那就要看運行時發生的情況來決定了。
Objective-C 的 Runtime 鑄就了它動態語言的特性,這些深層次的知識雖然平時寫代碼用的少一些,但是卻是每個 Objc 程序員需要了解的。
Objc Runtime使得C具有了面向對象能力,在程序運行時創建,檢查,修改類、對象和它們的方法。可以使用runtime的一系列方法實現。
⑥ 蘋果工程部解鎖一般多久
蘋果iPhone被鎖,在機主提交資料後,一般在3-7天時間內,官方就可以完成解鎖工作。
對於被鎖Apple ID 的手機,機主要提供的資料有:
購買發票,上面有對應手機的詳細信息,以確認機主是合法購置;
提供購機的原包裝,這個包裝中的標識必須清晰可見,以進一步確認機主身份合法有效。
以上兩個是必須的,缺一不可,所以在購機後,不可以把外包裝隨便一丟了事。
⑦ 求大神推薦好用的項目管理軟體,需要蘋果版的!
OmniPlan 3 for Mac(項目流程管理軟體)
中文版:網頁鏈接
OmniPlan for mac是Mac OS X平台的上最好用的項目管理軟體,提供自定檢視表、階層式的綱要模式、成本追蹤、里程碑、任務限制與相關性、資源分配、時程式控制制、Gantt 圖表、違反事項顯示、關鍵路徑等等功能。
⑧ 如何面試 iOS 工程師
知乎鏈接:http://www.hu.com/question/19604641
1.什麼是arc?(arc是為了解決什麼問題誕生的?)
首先解釋ARC: automatic reference counting自動引用計數。
ARC幾個要點:
在對象被創建時 retain count +1,在對象被release時 retain count -1.當retain count 為0 時,銷毀對象。
程序中加入autoreleasepool的對象會由系統自動加上autorelease方法,如果該對象引用計數為0,則銷毀。
那麼ARC是為了解決什麼問題誕生的呢?這個得追溯到MRC手動內存管理時代說起。
MRC下內存管理的缺點:
1.當我們要釋放一個堆內存時,首先要確定指向這個堆空間的指針都被release了。(避免提前釋放)
2.釋放指針指向的堆空間,首先要確定哪些指針指向同一個堆,這些指針只能釋放一次。(MRC下即誰創建,誰釋放,避免重復釋放)
3.模塊化操作時,對象可能被多個模塊創建和使用,不能確定最後由誰去釋放。
4.多線程操作時,不確定哪個線程最後使用完畢
2.請解釋以下keywords的區別: assign vs weak, __block vs __weak
assign適用於基本數據類型,weak是適用於NSObject對象,並且是一個弱引用。
assign其實也可以用來修飾對象,那麼我們為什麼不用它呢?因為被assign修飾的對象在釋放之後,指針的地址還是存在的,也就是說指針並沒有被置為nil。如果在後續的內存分配中,剛好分到了這塊地址,程序就會崩潰掉。
而weak修飾的對象在釋放之後,指針地址會被置為nil。所以現在一般弱引用就是用weak。
首先__block是用來修飾一個變數,這個變數就可以在block中被修改(參考block實現原理)
__block:使用__block修飾的變數在block代碼快中會被retain(ARC下,MRC下不會retain)
__weak:使用__weak修飾的變數不會在block代碼塊中被retain
同時,在ARC下,要避免block出現循環引用 __weak typedof(self)weakSelf = self;
3.__block在arc和非arc下含義一樣嗎?
是不一樣的。
在MRC中__block variable在block中使用是不會retain的
但是ARC中__block則是會Retain的。
取而代之的是用__weak或是__unsafe_unretained來更精確的描述weak reference的目的
其中前者只能在iOS5之後可以使用,但是比較好 (該物件release之後,此pointer會自動設成nil)
而後者是ARC的環境下為了相容4.x的解決方案。