當前位置:首頁 » 編程軟體 » oc編譯器成再編譯

oc編譯器成再編譯

發布時間: 2022-02-27 09:59:39

❶ 系統是怎麼編譯的 一般軟體都是用開發語言寫代碼, 然後再用編譯器編譯成文件。 但是按我目前的認識

網路

卧薪嘗膽歷史故事
shate3 | 2012-06-23 | 分享
作業不會,學霸幫你立即下載
我來解答
推薦回答
吳王闔閭打敗楚國,成了南方霸主。吳國跟附近的越國(都城在今浙江紹興)素來不和。公元前496年,越國國王勾踐即位。吳王趁越國剛剛遭到喪事,就發兵打越國。吳越兩國在槜李(今浙江嘉興西南,槜音zuì)地方,發生一場大戰。

吳王闔閭滿以為可以打贏,沒想到打了個敗仗,自己又中箭受了重傷,再加上上了年紀,回到吳國,就咽了氣。

吳王闔閭死後,兒子夫差即位。闔閭臨死時對夫差說:"不要忘記報越國的仇。"夫差記住這個囑咐,叫人經常提醒他。他經過宮門,手下的人就扯開了嗓子喊:"夫差!你忘了越王殺你父親的仇嗎?"

夫差流著眼淚說:"不,不敢忘。"他叫伍子胥和另一個大臣伯嚭(音pǐ)操練兵馬,准備攻打越國。過了兩年,吳王夫差親自率領大軍去打越國。越國有兩個很能乾的大夫,一個叫文種,一個叫范蠡(音lí)。范蠡對勾踐說:"吳國練兵快三年了。這回決心報仇,來勢兇猛。咱們不如守住城,不要跟他們作戰。"

勾踐不同意,也發大軍去跟吳國人拼個死活。兩國的軍隊在大湖一帶打上了。越軍果然大敗。越王勾踐帶了五千個殘兵敗將逃到會稽,被吳軍圍困起來。勾踐弄得一點辦法都沒有了。他跟范蠡說:"懊悔沒有聽你的話,弄到這步田地。現在該怎麼辦?"

范蠡說:"咱們趕快去求和吧。"勾踐派文種到吳王營里去求和。文種在夫差面前把勾踐願意投降的意思說了一遍。吳王夫差想同意,可是伍子胥堅決反對。

文種回去後,打聽到吳國的伯嚭是個貪財好色的小人,就把一批美女和珍寶,私下送給伯嚭,請伯嚭在夫差面前講好話。經過伯嚭在夫差面前一番勸說,吳王夫差不顧伍子胥的反對,答應了越國的求和,但是要勾踐親自到吳國去。

文種回去向勾踐報告了。勾踐把國家大事託付給文種,自己帶著夫人和范蠡到吳國去。勾踐到了吳國,夫差讓他們夫婦倆住在闔閭的大墳旁邊一間石屋裡,叫勾踐給他喂馬。范蠡跟著做奴僕的工作。夫差每次坐車出去,勾踐就給他拉馬,這樣過了兩年,夫差認為勾踐真心歸順了他,就放勾踐回國。

勾踐回到越國後,立志報仇雪恥。他唯恐眼前的安逸消磨了志氣,在吃飯的地方掛上一個苦膽,每逢吃飯的時候,就先嘗一嘗苦味,還自己問:"你忘了會稽的恥辱嗎?"他還把席子撤去,用柴草當作褥子。這就是後來人傳誦的"卧薪嘗膽"。
丟來了 | 2012-06-23
1700
500

網路知道

作業幫

寶寶知道

今日頭條

言情小說

91助手

女生秘密

汽車報價

秀美甲

LBE安全

酷狗音樂

美攝
相關問題
卧薪嘗膽類似的歷史故事65
從卧薪嘗膽這個歷史故事中大家明白了什麼?121
「卧薪嘗膽」這個成語講的什麼歷史故事?217
卧薪嘗膽的歷史故事614
卧薪嘗膽簡要的歷史故事431
<<卧薪嘗膽>>這篇歷史故事,主要寫了什麼3
卧薪嘗膽是寓言故事還是歷史故事?急!!!!71
更多相關問題>>
用作業幫一鍵提問「卧薪嘗膽...」問題
回答
卧薪嘗膽
兩千多年前,在長江下游有兩個國家,一個是吳國,一個是越國。他們都想征服對方,使自己的國家強大起來。
會稽一戰,越國打了敗仗。越王勾踐萬般無奈,只好派人向吳王夫差求和,表示願意和夫人一起去吳國,給吳王當奴僕。吳王的謀臣紛紛要求滅掉越國,免除後患。得勝的吳王非常驕傲,不聽大家的建議,答應了勾踐的請求。
勾踐夫婦來到吳國,穿上了粗布衣,住進了石頭房,給吳王養馬駕車,舂米推磨,受盡了屈辱。他們在吳國整整幹了三年,才回到自己的國家。
回國以後,越王勾踐時刻不忘報仇雪恨。白天,他親自下田耕種;晚上,就睡在柴草上。他還在屋裡掛了一隻苦膽,每頓飯前,總是要先嘗嘗它的苦味,提醒自己時刻不忘兵敗會稽的恥辱。
經過二十多年的努力,越國終於轉弱為強,出奇兵滅掉了吳國。
可愛小黎 | 2012-11-12
366
95
公元前496年,吳王派兵攻打越國,被越王勾踐打得大敗,吳王也受了重傷,臨死前,囑咐兒子夫差要替他報仇。夫差牢記父親的話,日夜加緊練兵,准備攻打越國。 過了兩年,夫差率兵把勾踐打得大敗,勾踐被包圍,無路可走,准備自殺。這時謀臣文種勸住了他,說:「吳國大臣伯喜否貪財好色,可以派人去賄賂他。」勾踐聽從了文種的建議,就派他帶著珍寶賄賂伯喜否,伯喜否答應和文種去見吳王。 文種見了吳王,獻上珍寶,說:「越王願意投降,做您的臣下伺候您,請您能饒恕他。」伯喜否也在一旁幫文種說話。伍子胥站出來大聲反對道:「人常說『治病要除根』,勾踐深謀遠慮,文種、范蠡精明強干,這次放了他們,他們回去後就會想辦法報仇的!」這時的夫差以為越國已經不足為患,就不聽伍子胥的勸告,答應了越國的投降,把軍隊撤回了吳國。 吳國撤兵後,勾踐帶著妻子和大夫范蠡到吳國伺候吳王,放牛牧羊,終於贏得了吳王的

❷ C語言代碼怎麼編譯成.o文件再怎麼變成.exe文件

linux下gcc -c wen.c -o wen.o 生成.o文件gcc wen.o -o wen 就變成.exe文件

❸ 只有oc渲染器才有節點編輯器嗎C4D自帶的渲染器里有沒有節點編輯器

C4D r21版本出的ProRender渲染器是有節點編輯器的,可以做PBR材質,標准和物理渲染器是沒有的。 另外,除了oc渲染器還有redshift、arnold等外置渲染器也都是節點編輯模式。

❹ objective-c和Cpp怎麼混合編程

Using C++ With Objective-C
蘋果的Objective-C編譯器允許用戶在同一個源文件里自由地混合使用C++和Objective-C,混編後的語言叫Objective-C++。有了它,你就可以在Objective-C應用程序中使用已有的C++類庫。

Objective-C和C++混編的要點
在 Objective-C++中,可以用C++代碼調用方法也可以從Objective-C調用方法。在這兩種語言里對象都是指針,可以在任何地方使用。例 如,C++類可以使用Objective-C對象的指針作為數據成員,Objective-C類也可以有C++對象指針做實例變數。下例說明了這一點。
注意:Xcode需要源文件以".mm"為擴展名,這樣才能啟動編譯器的Objective-C++擴展。
/* Hello.mm
* Compile with: g++ -x objective-c++ -framework Foundation Hello.mm -o hello
*/

#import <Foundation/Foundation.h>
class Hello {
private:
id greeting_text; // holds an NSString
public:
Hello() {
greeting_text = @"Hello, world!";
}
Hello(const char* initial_greeting_text) {
greeting_text = [[NSString alloc] initWithUTF8String:initial_greeting_text];
}
void say_hello() {
printf("%s\n", [greeting_text UTF8String]);
}
};

@interface Greeting : NSObject {
@private
Hello *hello;
}
- (id)init;
- (void)dealloc;
- (void)sayGreeting;
- (void)sayGreeting:(Hello*)greeting;
@end

@implementation Greeting
- (id)init {
if (self = [super init]) {
hello = new Hello();
}
return self;
}
- (void)dealloc {
delete hello;
[super dealloc];
}
- (void)sayGreeting {
hello->say_hello();
}
- (void)sayGreeting:(Hello*)greeting {
greeting->say_hello();
}
@end

int main() {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

Greeting *greeting = [[Greeting alloc] init];
[greeting sayGreeting]; // > Hello, world!

Hello *hello = new Hello("Bonjour, monde!");
[greeting sayGreeting:hello]; // > Bonjour, monde!

delete hello;
[greeting release];
[pool release];
return 0;
}

正如你可以在OC介面中聲明C結構一樣,你也可以在OC介面中聲明C++類。跟C結構一樣,OC介面中定義的C++類是全局范圍的,不是OC類的內嵌類(這與標准C(盡管不是C++)提升嵌套結構定義為文件范圍是一致的)。
為了允許你基於語言變種條件化地編寫代碼,OC++編譯器定義了__cplusplus和__OBJC__預處理器常量,分別指定C++和OC。 如前所述,OC++不允許C++類繼承自OC對象,也不允許OC類繼承自C++對象。
class Base { /* ... */ };
@interface ObjCClass: Base ... @end // ERROR!
class Derived: public ObjCClass ... // ERROR!

與 OC不同的是,C++對象是靜態類型的,有運行時多態是特殊情況。兩種語言的對象模型因此不能直接兼容。更根本的,OC和C++對象在內存中的布局是互不 相容的,也就是說,一般不可能創建一個對象實例從兩種語言的角度來看都是有效的。因此,兩種類型層次結構不能被混合。
你可以在OC類內部聲明C++類,編譯器把這些類當作已聲明在全局名稱空間來對待。就像下面:

@interface Foo {
class Bar { ... } // OK
}
@end

Bar *barPtr; // OK

OC允許C結構作為實例變數,不管它是否聲明在OC聲明內部。

@interface Foo {
struct CStruct { ... };
struct CStruct bigIvar; // OK
} ... @end

Mac OS X 10.4以後,如果你設置fobjc- call-cxx-cdtors編譯器標志,你就可以使用包含虛函數和有意義的用戶自定義零參數構造函數、析構函數的C++類實例來做為實例變數 (gcc-4.2默認設置編譯器標志fobjc-call-cpp-cdtors)。OC成員變數alloc完以後,alloc函數會按聲明順序調用構造 器。構造器使用公共無參數恰當的構造函數。OC成員變數dealloc之前,dealloc方法按聲明順序反序調用調用析構函數。 OC沒有名稱空間得概念。不能在C++名稱空間內部聲明OC類,也不能在OC類里聲明名稱空間。
OC類,協議,分類不能聲明在C++ template里,C++ template也不能聲明在OC介面,協議,分類的范圍內。
但是,OC類可以做C++ template的參數,C++ template參數也可以做OC消息表達式的接收者或參數(不能通過selector)。

C++詞彙歧義和沖突
OC頭文件中定義了一些標識符,所有的OC程序必須包含的,這些標識符識id,Class,SEL,IMP和BOOL。
OC方法內,編譯器預聲明了標識符self和super,就想C++中的關鍵字this。跟C++的this不同的是,self和super是上下文相關的;OC方法外他們還可以用於普通標識符。
協議內方法的參數列表,有5個上下文相關的關鍵字(oneway,in,out,inout,by)。這些在其他內容中不是關鍵字。
從 OC程序員的角度來看,C++增加了不少新的關鍵字。你仍然可以使用C++的關鍵字做OC selector的一部分,所以影響並不嚴重,但你不能使用他們命名OC類和實例變數。例如,盡管class是C++的關鍵字,但是你仍然能夠使用 NSObject的方法class:
[foo class]; // OK

然而,因為它是一個關鍵字,你不能用class做變數名稱:

NSObject *class; // Error

OC里類名和分類名有單獨的命名空間。@interface foo和@interface(foo)能夠同時存在在一個源代碼中。OC++里,你也能用C++中的類名或結構名來命名你的分類。
協議和template標識符使用語法相同但目的不同:

id<someProtocolName> foo;
TemplateType<SomeTypeName> bar;

為了避免這種含糊之處,編譯器不允許把id做template名稱。 最後,C++有一個語法歧義,當一個label後面跟了一個表達式表示一個全局名稱時,就像下面:
label: ::global_name = 3;

第一個冒號後面需要空格。OC++有類似情況,也需要一個空格:

receiver selector: ::global_c++_name;

限制
OC++ 沒有為OC類增加C++的功能,也沒有為C++類增加OC的功能。例如,你不能用OC語法調用C++對象,也不能為OC對象增加構造函數和析構函數,也不 能將this和self互相替換使用。類的體系結構是獨立的。C++類不能繼承OC類,OC類也不能繼承C++類。另外,多語言異常處理是不支持的。也就 是說,一個OC拋出的異常不能被C++代碼捕獲,反過來C++代碼拋出的異常不能被OC代碼捕獲。

❺ OC代碼怎麼寫音樂編譯器

寫一個簡單的?
還是什麼的
分好少,加點分,我可以給你寫個dome

❻ 我使用xcode編寫c++,怎麼生成exe文件

不能在win下運行,兩者可執行文件的結構不一樣,運行機制也不一樣,如果使用xcode編寫的軟體是純c++代碼,沒有oc的代碼,沒有使用系統相關api、mac的類庫等等,在win下可以重新編譯成win執行文件。xcode工程不能在vb里打開。

❼ oc 編譯器生成的setter 和 getter方法,什麼時候生成的

可以完全不重寫這兩個方法,但是當你習慣了用這兩個方法後你會發現能極大的簡化代碼
比如你的類裡面有個label,然後你再定義一個公開屬性lableColor來獲取這個label字體的顏色
如果不用get方法的情況下,每當label的字體顏色有變化你都要給lableColor賦值一次,這樣才能保證獲取到的顏色的是對的,但是如果你重寫了lableColor 的get方法,只要return [label.textcolor];全部搞定

❽ 在VC++6.0里如何使用命令行標記將C++編譯器變成C編譯器

命令行?
我只知道有個
extern "C"{}.你完全可以將代碼寫進去.

❾ xcode 如何編譯

Xcode 常用編譯選項設置
在xcconfig文件中指定即可。
用標准庫連接
LINK_WITH_STANDARD_LIBRARIES = YES如果激活此設置,那麼編譯器在鏈接過程中會自動使用通過標准庫的鏈接器。
Info.plist 輸出編碼
INFOPLIST_OUTPUT_FORMAT = binary指定Info.plist文件的輸出編碼(默認情況下,輸出與輸入的編碼保持不變),這個輸出編碼能指定「binary」或者「XML」。
生 成調試符號GCC_GENERATE_DEBUGGING_SYMBOLS = NO當啟用的時候,詳情等級能夠通過build的』Level of Debug Symbols』設置去控制。 隱藏內聯方法GCC_INLINES_ARE_PRIVATE_EXTERN = YES Objective-C GCGCC_ENABLE_OBJC_GC = Unsupported 優化級別GCC_OPTIMIZATION_LEVEL = Fastest, Smallest [-OS]
None: 不做優化使用這個設置,編譯器的目標是減少編譯成本,使調試產生預期的結果。
Fast:優化編譯將為大函數佔用更多的時間和內存使用這個設置,編譯器將嘗試減少代碼的大小和執行時間,不進行任何優化,需要大量編譯時間。
Faster:編譯器執行幾乎所有支持的優化,它不考慮空間和速度之間的平衡與「Fast」設置相比,該設置會增加編譯時間和生成代碼的性能。編譯器不進行循環展開、內聯函數和寄存器變數的重命名。
Fastest:開啟「Faster」支持的所有的優化,同時也開啟內聯函數和寄存器變數的重命名選項
Fastest,smallest:優化代碼大小這個設置啟用「Faster」所有的優化,一般不增加代碼大小,它還執行旨在減小代碼大小的進一步優化。
C 語言方言GCC_C_LANGUAGE_STANDARD = C89 警告 檢查Switch語句GCC_WARN_CHECK_SWITCH_STATEMENTS = YES 隱藏局部變數GCC_WARN_SHADOW = YES 隱式轉換成32位的類型GCC_WARN_64_TO_32_BIT_CONVERSION = YES 未完成的Objective-C協議GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES 抑制所有的警告GCC_WARN_INHIBIT_ALL_WARNINGS = NO 初始化時沒有完整的括弧GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES例子(a沒有完全的括弧,b有):
int a[ 2 ][ 2 ] = { 0, 1, 2, 3 };
int b[ 2 ][ 2 ] = { { 0, 1 }, { 2, 3 } };
不匹配的返回類型
GCC_WARN_ABOUT_RETURN_TYPE = YES 缺少括弧GCC_WARN_MISSING_PARENTHESES = YES例子:
{
if( a )
if( b )
foo();
else
bar();
}
{
if( a )
{
if( b )
foo();
else
bar();
}
}
在結構體初始化時缺少欄位
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
缺 少函數原型GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES 在文件結尾缺少新行GCC_WARN_ABOUT_MISSING_NEWLINE = YES 選擇了多個定義的類型(@Selector)GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO 嚴格的Selector匹配GCC_WARN_STRICT_SELECTOR_MATCH = YES 把缺少函數原型當作錯誤GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES 把所有的警告當作錯誤GCC_TREAT_WARNINGS_AS_ERRORS = YES 未定義的SelectorGCC_WARN_UNDECLARED_SELECTOR = YES 未初始化的自動變數GCC_WARN_UNINITIALIZED_AUTOS = YES 未知的Pragma指令GCC_WARN_UNKNOWN_PRAGMAS = YES 未使用的函數GCC_WARN_UNUSED_FUNCTION = YES 未使用的標簽GCC_WARN_UNUSED_LABEL = YES 未使用的參數GCC_WARN_UNUSED_PARAMETER = YES 未使用的值GCC_WARN_UNUSED_VALUE = YES當一個語句計算的結果顯式的未使用的時候發出警告 未使用的變數GCC_WARN_UNUSED_VARIABLE = YES 警告-所有過時的函數GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES offsetof宏未定義使用的警告GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
iphone 常用的<app>-info.plist設置
Application requires iPhone environment如 果應用程序不能在ipod touch上運行,設置此項為true;
Application uses Wi-Fi如果應用程序需要wi-fi才能工作,應該將此屬性設置為true。這么做會提示用戶,如果沒有打開wi-fi的話,打開wi-fi。為了節省 電力,iphone會在30分鍾後自動關閉應用程序中的任何wi-fi。設置這一個屬性可以防止這種情況的發生,並且保持連接處於活動狀態
Bundle display name這用於設置應用程序的名稱,它顯示在iphone屏幕的圖標下方。應用程序名稱限制在10-12個字元,如果超出,iphone將縮寫名 稱。
Bundle identifier這個為應用程序在iphone developer program portal web站點上設置的唯一標識符。(就是你安裝證書的時候,需要把這里對應修改)。
Bundle version這個會設置應用程序版本號,每次部署應用程序的一個新版本時,將會增加這個編號,在app store用的。
Icon already includes gloss and bevel effects默認情況下,應用程序被設置了玻璃效果,把這個設置為true可以阻止這么做。
Icon file(這個不用多說了)設置應用程序圖標的。
Main nib file base name應用程序首次啟動時載入的xib文件 這個基本用不到。
Initial interface orientation 確定了應用程序以風景模式還是任務模式啟動
Localizations多語言。應用程序本地化的一列表,期間用逗號隔開,例如 應用程序支持英語 日語,將會適用 English,Japanese. Status bar is initially hidden 設置是否隱藏狀態欄。你懂的。
Status bar style選擇三種不同格式種的一種。
URL types應用程序支持的url標識符的一個數組。
用URL Scheme進行程序跳轉
打開info.plist,添加一項URL types
展開URL types,再展開Item1,將Item1下的URL identifier修改為URL Scheme
展開URL Scheme,將Item1的內容修改為myapp
其他程序可通過myapp://訪問此自定義URL
參考:http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
IOS後台播放音樂
OS後台播放只是在IOS4.0以後的版本支持。
1,設置後台播放會話
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory: error:nil];
2,在info.plist裡面添加
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
靜態庫沒法包含category/分類?
如果你導入一個objc靜態庫,發現很多objc的category 不能調用,可以嘗試在主工程中加入linker選項:
-all_load 加入這個一般就夠了
-ObjC
讓程序最小化再開啟時,從頭開始:
按下 「Home」 鍵以後程序可能並沒有退出而是轉入了後台運行。如果您想讓應用直接退出,最簡單的方法是:在 info-plist 裡面找到 Application does not run in background 一項,勾選即可。
程序退出後任務欄還是有圖標,但是程序原來的所有運行狀態全部丟失,點擊任務欄圖標也不過相當於再次啟動程序;如果允許後台運行,點擊任務欄圖標後會恢復程序中斷時的界面。
本地化字元串:
在infoPlist.strings裡面寫
「string1″=」水果」
代碼裡面寫 myLabel.text = NSLocalizedString(@」string1″, nil);
本地化的Bundle display name:
1)創建一個空文件,取名為InfoPlist.strings
2)對InfoPlist.strings進行本地化(Get Info -> Make Localization),然後設置需要的語言(如中文zh)
3)編輯不同的InfoPlist.strings文件,設置顯示名字
CFBundleDisplayName = 「名字」;
4)(這步不做貌似也可以)編輯Info.plist,添加一個新的屬性Application has localized display name, 設置其類型為boolean,並將其value設置為選中狀態
default圖片的銜接問題:
程序開始後,手動載入default圖片,然後進行過渡效果即可。
遍歷目錄:
NSString *appDocDir = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] relativePath];NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appDocDir error:NULL];for (NSString *aPath in contentOfFolder) { NSLog(@"apath: %@", aPath); NSString * fullPath = [appDocDir :aPath]; BOOL isDir; if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir) { [fileList addObject:aPath]; }}
IB:
不論寫不寫property的retain,由IBOutlet都會為對象加一個retainCount,所以只要連接了,就需要在viewDidUnload與dealloc中release並適當置為nil。
預先在IB裡面載入好的文件(比如圖片),即使釋放了Controller,IB中的文件也不會被釋放,直至內存警告,解決辦法是較大的資源用代碼載入。
UIWebView:
用代碼載入UIWebView的內容,navigationType是UIWebViewNavigationTypeOther
CAAnimation:
一定要記得[self.view.layer removeAllAnimations];因為CAAnimation會retain它的delegate
設備型號識別,可通過審核:
+ (NSString*)getDeviceVersion{ size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; free(machine); return platform;}
輸出:
//@」iPad1,1″
//@」iPad2,1″
//@」i386″
逗號後面數字解釋:(i386是指模擬器)
1-WiFi版
2-GSM/WCDMA 3G版
3-CDMA版
AppleTV(2G) (AppleTV2,1)
iPad (iPad1,1)
iPad2,1 (iPad2,1)Wifi版
iPad2,2 (iPad2,2)GSM3G版
iPad2,3 (iPad2,3)CDMA3G版
iPhone (iPhone1,1)
iPhone3G (iPhone1,2)
iPhone3GS (iPhone2,1)
iPhone4 (iPhone3,1)
iPhone4(vz) (iPhone3,3)iPhone4 CDMA版
iPhone4S (iPhone4,1)
iPodTouch(1G) (iPod1,1)
iPodTouch(2G) (iPod2,1)
iPodTouch(3G) (iPod3,1)
iPodTouch(4G) (iPod4,1)
判斷ipad/iphone
12UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPadUI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
或者
1[[[UIDevice currentDevice] model] isEqualToString:@"iPad"];
判斷設備是否有攝像頭
1[UIImagePickerController isSourceTypeAvailable:];

熱點內容
網易我的世界伺服器添加第三方mod 發布:2025-01-18 11:32:10 瀏覽:212
oracle批量插入存儲過程 發布:2025-01-18 10:49:57 瀏覽:41
分表存儲查詢 發布:2025-01-18 10:45:18 瀏覽:469
缺頁演算法 發布:2025-01-18 10:40:20 瀏覽:778
撕裂重罪6游戲電腦需要什麼配置 發布:2025-01-18 10:37:23 瀏覽:444
python大小寫忽略 發布:2025-01-18 10:36:13 瀏覽:441
如何給桌面的游戲加密碼 發布:2025-01-18 10:09:34 瀏覽:231
魅族微信多開安卓怎麼弄 發布:2025-01-18 10:04:33 瀏覽:448
網路設置里沒有伺服器是什麼 發布:2025-01-18 09:52:19 瀏覽:343
阿里雲esc伺服器系統 發布:2025-01-18 09:49:16 瀏覽:790