阅读803 返回首页    go 阿里云 go 技术社区[云栖]


iOS搴旂敤寮€鍙戝叆闂ㄦ寚鍗?- 缂栧啓 Objective-C 浠g爜-鍗氩-浜戞尔绀惧尯-阒块噷浜?

濡傛灉浣犲垰寮€濮嬫帴瑙?iOS 鎴?Mac OS X听缂栫▼锛岄鍏堣瀛︿范涓€镣圭紪绋嬭瑷€ Objective-C 鍏ラ桊鐭ヨ瘑銆侽bjective-C 骞朵笉鏄竴闂ㄥ鏉傜殑璇█锛岀粡杩囦竴娈垫椂闂寸殑鎺ヨЕ锛屼綘灏辫兘浣扑细鍒板畠鐨勪紭闆呫€侽bjective-C 璇█瀹炵幇浜嗕弗镙肩殑闱㈠悜瀵硅薄缂栫▼銆傚畠鎵╁睍浜嗘爣鍑? ANSI C 璇█锛屽锷犱简瀹氢箟绫诲拰鏂规硶鐨勮娉曘€傚畠杩樻帹琛岀被鍜屾帴鍙g殑锷ㄦ€佹墿灞曟€э纴浣夸换浣旷被閮借兘阃傞厤鍜岄噰鐢ㄣ€?/p>

濡傛灉浣犲凡缁忔帉鎻′简 ANSI C 璇█锛屼笅闱㈢殑鍐呭鑳藉甯姪浣犳帉鎻?Objective-C 鐨勫熀链娉曘€傚鏋滀綘链夊叾浠栭溃钖戝璞$紪绋嬭瑷€鐨勫熀纭€锛屼綘浼氩彂鐜?Objective-C 涓惈链夊ぇ閲忎紶缁熺殑闱㈠悜瀵硅薄姒傚康锛屼緥濡傚皝瑁呫€佺户鎵裤€佸镐佹€х瓑銆傚弽杩囨潵锛屽鏋滀綘瀵?ANSI C 灏氢笉镡熸倝锛屾垜浠瘹鎸氩缓璁偍鍦ㄩ槄璇绘湰鏂囦箣鍓嶏纴鍏堣呖灏戦槄璇讳竴绡囧叧浜?C 璇█鐨勪粙缁嶃€?/p>

鍦ㄣ€奣he Objective-C Programming Language銆嬩腑瀹屾暣璁茶В浜?Objective-C 璇█銆?/p>

鍏充簬 Objective-C

Objective-C 璇█瑙勫畾浜嗕竴绯诲垪鐢ㄦ潵瀹氢箟绫诲拰鏂规硶鐨勮娉曪纴浠ュ强鐢ㄦ潵鎺ㄨ绫诲拰鍙€傚簲鎺ュ彛鐨勫姩镐佹墿灞旷殑缁撴瀯銆?/p>

C 璇█鐨勮秴闆?/strong>

镞㈢劧鏄?C 璇█鐨勮秴闆嗭纴Objective-C 鏀寔鎵€链?C 璇█鐨勫熀链娉曘€备綘鍙互缁х画鎸変綘鐨勪范鎯功鍐欎唬镰侊纴渚嫔铡熷绫诲瀷锛坕nt銆乫loat 绛夛级銆佺粨鏋勚€佸嚱鏁般€佹寚阍堬纴杩樻湁杩囩▼鎺у埗璇彞渚嫔 if钬lse 鍜?for 璇彞銆备綘鍙互浣跨敤镙囧嗳 C 璇█搴掳纴姣斿 stdlib.h 鍜?stdio.h 涓0鏄庣殑鍐呭銆?/p>

Objective-C 鍦?ANSI C 鐨勫熀纭€涓婂锷犱简濡备笅鍐呭锛?/p>

  • 瀹氢箟鏂扮被鐨勮娉曡绾?/li>
  • 绫诲拰瀹炰緥鏂规硶鐨勮绾?/li>
  • 璋幂敤鏂规硶鐨勮娉曪纸绉颁负娑堟伅链哄埗锛?/li>
  • 澹版槑灞炴€у苟浠庝腑钖堟垚瀛桦彇鏂规硶鐨勮娉?/li>
  • 闱欐€佸拰锷ㄦ€佺被鍨嬬殑瑙勭害
  • 鍧楀璞★纸Block锛? 灏佽璧锋潵鐨勪唬镰佺墖娈碉纴鍙互鍦ㄤ换浣曟椂鍊栾鎵ц
  • 瀵瑰熀链瑷€鐨勬墿灞曪纴渚嫔鍗忚銆佽寖鐣寸被绛?/li>

濡傛灉鐜板湪杩树笉鏄庣槠杩欎簺 Objective-C 姒傚康涔熶笉蹇呮媴蹇冦€傚綋浣犵户缁槄璇诲悗闱㈢殑鍐呭镞跺氨浼氩涔犺繖浜涙蹇点€傚鏋滀綘鏄埯娆℃帴瑙﹂溃钖戝璞℃蹇电殑寮€鍙戣€咃纴鍙互鍏堟妸瀵硅薄鎯宠薄鎴愪竴涓惈链夊嚱鏁扮殑缁撴瀯銆傝繖涓瘆锽讳笉绠楀お绂昏氨锛屽挨鍏跺杩愯镞剁殑瀹炵幇钥岃█銆?/p>

Objective-C 鐨勪紭锷?/strong>

Objective-C 涓崭粎鎻愪緵浜嗗叾浠栭溃钖戝璞$紪绋嬭瑷€涓殑鎶借薄姒傚康鍜岃繍琛屾満鍒讹纴钥屼笖杩樻槸涓€绉嶉潪甯哥伒娲荤殑璇█锛岃繖绉嶅姩镐佹€у氨鏄?Objective-C 鐨勬渶澶т紭锷挎墍鍦ㄣ€傝繖绉嶅姩镐佹€у彲浠ヨ搴旂敤鍦ㄨ繍琛屼腑锛埚嵆钬滆繍琛屾椂钬濓级鍒ゆ柇鍏惰链夌殑琛屼负锛岃€屼笉鏄湪缂栬疟鏋勫缓镞跺氨锲哄畾涓嬫潵銆傚洜姝わ纴Objective-C 鎶婂簲鐢ㄧ▼搴忎粠缂栬疟镞躲€佽繛鎺ユ椂鐨勯檺鍒朵腑瑙f斁鍑烘潵锛屽苟鍦ㄧ敤鎴锋帉鎻℃带鍒舵潈镞讹纴镟村渚濊禆浜庤繍琛屾椂鐨勭鍙疯В鏋愩€侽bjective-C 鐨勫姩镐佹€ф潵镊笁涓柟闱细

  • 锷ㄦ€佺被鍨?/strong>听鍙互璁╀綘鐨勪唬镰佸湪杩愯镞跺垽鏂璞$殑绫诲瀷銆俰d 鏁版嵁绫诲瀷鍙互鍦ㄨ繍琛屾椂鐢ㄤ换浣曟暟鎹被鍨嬫潵镟挎崲銆傛墍浠ワ纴浣犲彲浠ヨ杩愯镞跺洜绱犳潵鍐冲畾浠g爜涓敤鍒扮殑瀵硅薄鏄粈涔堢被鍨嬨€傚姩镐佺被鍨嬭浣犵殑搴旂敤镟村姞鐏垫椿锛岃繖鏄润镐佺被鍨嫔仛涓嶅埌鐨勶纴涓嶈绷杩欎细璁╂暟鎹殑涓ユ牸缁熶竴镐ч檷浣庛€?br>

    娉ㄦ剰锛?/strong>闱欐€佺被镐т腑鐨勭被閮芥槸锲哄畾绉岖被鐨勶纸姣斿听NSString *var锛夛纴瀹冩湁镊韩鐨勪紭锷匡纴瀹为檯涓婄敤澶勬瘆锷ㄦ€佺被鍨嬫洿骞挎硾銆傛墦涓瘆鏂癸纴浣跨敤闱欐€佺被鍨嬶纴缂栬疟鍣ㄥ氨鍙互瀹屽叏鍒嗘瀽浣犵殑浠g爜銆傝繖璁╀唬镰佹€ц兘鍜屽彲棰勭煡镐ф洿楂朴€傚湪鍏朵粬闱㈠悜瀵硅薄缂栫▼璇█涓纴锷ㄦ€佺被鍨嬫湁镞惰鎴愪负寮辩被鍨嬶纴闱欐€佺被鍨嬭鎴愪负寮虹被鍨嬨€?/p>

  • 锷ㄦ€佺粦瀹?/strong>听璁╀綘鐨勪唬镰佸湪杩愯镞跺垽鏂渶瑕佽皟鐢ㄤ粈涔堟柟娉曪纴钥屼笉鏄紪璇戞椂銆傚氨镀忓姩镐佺被鍨嬫妸瀵硅薄鐨勭被鍨嬫斁鍒拌繍琛屾椂鍐嶅幓鍒ゆ柇涓€镙凤纴锷ㄦ€佺粦瀹氭妸阃夋嫨璋幂敤鍝鏂规硶鐨勪换锷℃斁鍒颁简杩愯镞跺幓瀹屾垚銆傚拰鍏朵粬闱㈠悜瀵硅薄璇█涓€镙凤纴鏂规硶璋幂敤鍜屼唬镰佸苟娌℃湁鍦ㄧ紪璇戞椂灏辫仈缁揿湪涓€璧凤纴鍙湁鍦ㄦ秷鎭彂鍑烘椂锛屽畠浠墠鐪熸鑱旂粨銆?锷ㄦ€佺被鍨嫔拰锷ㄦ€佺粦瀹氱殑瀛桦湪浣垮缑阃夋嫨鍝釜鎺ユ敹钥呬互鍙婅皟鐢ㄥ摢涓柟娉曢兘鍙互鍦ㄨ繍琛屾椂鏉ュ喅瀹氥€傜敤涓€涓敾锲剧▼搴忔潵鎵撴瘆鏂癸纴瀹冭兘澶熷畾涔変粠鐖剁被缁ф圹钥屾潵鐨勫浘褰㈢被搴旇镐庢牱褰掔被锛涗綘鍙互鐩存帴鍦ㄦ煇涓璞′笂璋幂敤听draw 鏂规硶锛屾棤闇€鐭ユ檽璇ュ璞$殑绫讳互鍙婂畠缁桦埗镊繁鐨勫叿浣挞€斿缎銆?/li>
  • 锷ㄦ€佽浇鍏?/strong>听鍙互璁╀綘鐨勭▼搴忓湪杩愯镞舵坊锷犱唬镰佹ā鍧椾互鍙婂叾浠栬祫婧愩€傛湁浜嗗姩镐佽浇鍏ョ壒镐э纴搴旂敤鍙互镙规嵁闇€瑕佸姞杞戒竴绯诲垪鍙墽琛屼唬镰佷互鍙婅祫婧愶纴钥屼笉鏄湪钖姩镞跺氨锷犺浇鎵€链夌粍浠躲€傝繖鑳藉澶уぇ鎻愰珮镐ц兘銆傚彲鎵ц浠g爜涓彲浠ュ惈链夊拰绋嫔簭杩愯镞舵暣钖堢殑鏂扮被銆?/li>

绫诲拰瀵硅薄

鍜屽叾浠栧ぇ閮ㄥ垎闱㈠悜瀵硅薄缂栫▼璇█涓€镙凤纴Objective-C 涓殑绫讳篃鏀寔灏佽鏁版嵁锛屼互鍙婂畾涔夊彲浠ュ湪璇ユ暟鎹笂鎵ц鐨勫姩浣溿€傚璞℃槸杩愯镞剁被鐨勪竴涓疄渚嬨€傚湪绫婚噷澹版槑浜嗙殑瀹炰緥鍙橀噺鍜屾柟娉曪纴瀹幂殑姣忎釜瀹炰緥閮藉湪鍐呭瓨涓嫢链夊悓镙风殑瀹炰緥鍙橀噺锛屼互鍙婃寚钖戦偅浜涙柟娉旷殑鎸囬拡銆傚垱寤轰竴涓璞℃椂锛屼綘闇€瑕佺粡杩囦袱涓楠わ细鍐呭瓨鍒嗛厤锛坅llocation锛夊拰鍒濆鍖栵纸initialization锛夈€?/p>

Objective-C 涓殑绫绘湁镊繁鐨勮锣冭姹傦纴蹇呴』鍖呮嫭涓や釜涓嶅悓鐨勯儴鍒嗭细鎺ュ彛锛坕nterface锛夊拰瀹炵幇锛坕mplementation锛夈€傛帴鍙i儴鍒嗗惈链夌被鐨勫0鏄庛€佸疄渚嫔彉閲忓拰鐩稿叧鏂规硶鐨勫0鏄庛€傛棦铹舵槸浣滀负 C 璇█锛岄€氲绷鍒嗗埆瀹氢箟澶存枃浠跺拰婧愭枃浠讹纴浣犲氨鍙互灏嗗叕链夊0鏄庡拰鍏蜂綋鐨勫疄鐜颁唬镰佺粰鍒嗙寮€鏉ャ€傦纸浣犲彲浠ュ湪瀹炵幇鏂囦欢閲屾斁涓€浜涘0鏄庝唬镰侊纴锲犱负链変簺鎯呭喌涓嬶纴瀹冧滑鍏卞悓鏋勬垚涓€涓叕鐢ㄧ▼搴忛噷鐨勬帴鍙i儴鍒嗐€傦级涓嬭〃鍒楀嚭浜呜繖浜涙枃浠剁殑钖庣紑浠ュ强鍖哄埆锛?/p>

钖庣紑銆佹簮鏂囦欢绫诲瀷锛?/strong>

  • .h 钬?澶存枃浠躲€傚ご鏂囦欢钖湁绫汇€佺被鍨嬨€佸嚱鏁板拰甯搁噺鐨勫0鏄庛€?/li>
  • .m 钬?婧愭枃浠躲€傝繖涓悗缂€鐨勬簮鏂囦欢鍙互钖屾椂鍖呭惈 Objective-C 鍜?C 璇█鐨勪唬镰併€?/li>
  • .mm 钬?婧愭枃浠躲€傝繖涓悗缂€鐨勬簮鏂囦欢鍙互钖屾椂鍖呭惈 C++銆丱bjective-C 浠ュ强 C 璇█鐨勪唬镰併€傚彧链夊湪浣犵殑 Objective-C 浠g爜涓敤鍒颁简 C++ 鐨勭被鎴栬€呯壒镐ф椂鎵嶉渶瑕佷娇鐢ㄨ繖涓悗缂€銆?/li>

濡傛灉闇€瑕佸湪婧愪唬镰佷腑鍖呭惈澶存枃浠讹纴浣犻渶瑕佷娇鐢?import 锻戒护锛屽拰 C 璇█涓殑听#include 锻戒护绫讳技銆备袱钥呯殑鍖哄埆鍦ㄤ簬锛?import 鑳藉淇濊瘉澶存枃浠跺彧琚寘钖竴娆°€?/p>

锲?1 涓槸涓€娈电殑绫诲0鏄庣殑璇硶灞旷ず锛屽0鏄庝简涓€涓彨锅毬燤yClass 鐨勭被锛屽畠缁ф圹浜庡熀链被锛堟垨镙圭被锛夛细NSObject銆傦纸镙圭被鍙互琚墍链夌殑鍏朵粬绫荤洿鎺ユ垨闂存帴缁ф圹銆傦级绫诲0鏄庡紑澶存槸涓€鏉$紪璇戝櫒鎸囦护听@interface锛岀粨灏炬槸涓€鏉÷燖end 鎸囦护銆傚湪绫诲悕绉板悗杈癸纸涓棿鐢ㄥ啋鍙峰垎闅旓级锛屾槸鐖剁被鐨勫悕绉般€傚湪 Objective-C 涓纴姣忎釜绫诲彧鑳芥湁涓€涓埗绫汇€傜被涓寘钖殑瀹炰緥鍙橀噺锛堟湁镞惰绉颁负 ivar锛屽湪鍏朵粬缂栫▼璇█涓湁镞惰绉颁负鎴愬憳鍙橀噺锛夌殑澹版槑琚竴涓姳鎷彿锛坽 鍜屄爙锛夊寘瑁硅捣鏉ャ€傚疄渚嫔彉閲忔槸鍙€夌殑銆傚湪瀹炰緥鍙橀噺璇彞鍧椾笅杈规槸灞炴€э纸锲句腑娌℃湁鍐椤嚭鏉ワ级鍜岀被鐨勬柟娉曞0鏄庛€傛疮涓疄渚嫔彉閲忓拰鏂规硶澹版槑鐨勮鍙ョ粨灏鹃兘瑕佹湁涓€涓垎鍙枫€?/p>

class_decl

锲?1听涓€娈电被澹版槑

绫荤殑瀹炵幇鐨勮娉曚篃鏄被浼肩殑銆傚紑澶存槸缂栬疟鍣ㄦ寚浠ぢ燖implementation锛埚悗闱㈡湁绫荤殑钖岖О锛夛纴缁揿熬鏄燖end 鎸囦护銆傛柟娉旷殑瀹炵幇浠g爜灏卞湪杩欎袱涓寚浠ょ殑涓棿銆傚疄鐜颁唬镰佷腑蹇呴』瀵煎叆瀹幂殑鎺ュ彛鏂囦欢锛屽啓鍦ㄤ唬镰佺殑绗竴琛屻€?/p>

#import 钬淢yClass.h钬?/p>

@implementation MyClass
- (id)initWithString:(NSString *)aName
{
听 听 // 鍦ㄨ繖閲屼功鍐欎唬镰?br> }

+ (MyClass *)myClassWithString:(NSString *)aName
{
听 听 // 鍦ㄨ繖閲屼功鍐欎唬镰?br> }
@end

鎴戜滑涔嫔墠璁茶绷锛孙bjective-C 鏀寔鍖呭惈瀵硅薄鐨勫姩镐佺被鍨嫔彉閲忥纴瀹冨悓镞朵篃鏀寔闱欐€佺被镐с€傞润镐佺被鍨嫔彉閲忕殑澹版槑鍓嶈竟瑕佹湁鎵€杩扮被鐨勫悕绉般€傝€屽姩镐佺被鍨嫔彉閲忓0鏄庝互听id 鏉ヤ唬琛ㄥ璞°€傚湪镆愪簺鎯呭舰涓嬶纴浣犱细鐢ㄥ埌锷ㄦ€佺被鍨嫔彉閲忋€傛瘆濡傦纴涓€涓暟缁勮繖镙风殑瀵硅薄闆嗗悎锛堥噷闱㈠寘钖殑瀵硅薄绫诲瀷鍙兘鏄棤娉曢鐭ョ殑锛夊氨浼氱敤鍒板姩镐佺被鍨嫔彉閲忋€傝繖镙风殑鍙橀噺鑳藉鎻愪緵镞犳瘆鐏垫椿鐨勫姛鑳斤纴浣垮缑 Objective-C 绋嫔簭鑳藉鎷ユ湁镟村ぇ鐨勫姩镐佹€с€?/p>

涓嬮溃鐨勪緥瀛愬睍绀轰简闱欐€佺被鍨嫔拰锷ㄦ€佺被鍨嫔彉閲忕殑澹版槑鏂瑰纺锛?/p>

MyClass *myObject1;听 // 闱欐€佺被镐?br> id听听听听听听听听听听听听听myObject2;听 // 锷ㄦ€佺被鍨?br> NSString *userName;听 // 镟惧嚭鐜板湪钬滀綘鐨勭涓€涓?iOS 搴旂敤钬濅腑锛堥润镐佺被鍨嬶级

璇锋敞镒忕涓€涓0鏄庨噷鐨?* 鏄熷彿銆傚湪 Objective-C 璇█涓纴瀵硅薄姘歌繙鏄€氲绷鎸囬拡鏉ュ紩鐢ㄧ殑銆傚鏋灭幇鍦ㄤ綘杩树笉鑳芥槑锏借繖鍙ヨ瘽鐨勬剰镐濅篃涓嶅繀鎷呭绩锛屽湪瀛︿细Objective-C 鍩虹涔嫔悗鍐岖爷绌舵寚阍堜篃涓嶈繜銆傜幇鍦ㄤ綘闇€瑕佽浣忕殑锛屾槸鍦ㄩ润镐佺被鍨嫔彉閲忓0鏄庢椂锛屽彉閲忓悕绉板墠闱竴瀹氲链?* 鏄熷彿銆傝€屄爄d 绫诲瀷鍒欐殚绀哄畠鏄竴涓寚阍堛€?/p>

鏂规硶鍜屾秷鎭?/h3>

濡傛灉浣犲垰鍒氩紑濮嬫帴瑙﹂溃钖戝璞$紪绋嬶纴涓嶅Θ鍏堟妸钬沧柟娉曗€濇兂璞℃垚姣忎釜瀵硅薄鐗规湁鐨勪竴涓嚱鏁般€傞€氲绷钖戜竴涓璞″彂阃佹秷鎭纴浣犱究璋幂敤浜嗗璞$殑镆愪釜鏂规硶銆侽bjective-C 涓湁涓ょ鏂规硶锛氩疄渚嬫柟娉曚互鍙婄被鏂规硶銆?/p>

  • 瀹炰緥鏂规硶椤惧悕镐濅箟锛屽畠鐨勪綔鐢ㄥ烟浠呭湪镆愪釜绫荤殑涓€涓疄渚嫔綋涓€傛崲鍙ヨ瘽璇达纴鍦ㄨ皟鐢ㄦ煇涓疄渚嬫柟娉曚箣鍓嶏纴浣犲繀椤诲厛鍒涘缓涓€涓疄渚嬫墠琛屻€傚疄渚嬫柟娉曟槸链€甯歌鐨勬柟娉曘€?/li>
  • 绫绘柟娉曞垯鏄寚鍏朵綔鐢ㄥ烟鍖呮嫭璇ユ柟娉曟墍鍦ㄧ殑鏁翠釜绫汇€傚畠涓嶈姹傛煇涓璞$殑瀹炰緥浣滀负娑堟伅鐨勬帴鏀惰€呫€?/li>

鏂规硶鐨勫0鏄庣敱浠ヤ笅鍑犱釜閮ㄥ垎鏋勬垚锛氭柟娉旷被鍨嬫爣璇嗙锛岃繑锲炵被鍨嬶纴涓€涓垨澶氢釜鏂规硶绛惧悕鍏抽敭瀛楋纴浠ュ强鍙傛暟绫诲瀷鍜屽悕绉般€备笅闱㈢殑锲句腑鏄疄渚嬫柟娉暵爄nsertObject:atIndex: 鐨勫0鏄庤鍙ャ€?/p>

method_decl

鍦ㄥ疄渚嬫柟娉曚腑锛屽0鏄庣殑寮€澶存槸涓€涓?钬?鍑忓彿锛涜€屽0鏄庣被鏂规硶镞跺墠闱㈣浣跨敤 + 锷犲彿銆备笅鏂囩殑钬灭被鏂规硶钬濈珷鑺傚皢璇︾粏璁茶堪绫绘柟娉旷殑姒傚康銆?/p>

鏂规硶鐨勫悕绉帮纸insertObject:atIndex:锛夋槸涓€绯诲垪鏂规硶绛惧悕鍏抽敭璇嶈仈缁撹€屾垚锛屽寘鎷啋鍙枫€傚啋鍙疯〃绀哄皢浼氩嚭鐜板弬鏁般€傚湪涓婇溃鐨勪緥瀛愪腑锛岃繖涓柟娉曞惈链変袱涓弬鏁般€傚鏋沧煇涓柟娉曟病链夊弬鏁帮纴鍒欓渶瑕佸皢绗竴涓纸涔熸槸鍞竴涓€涓级鏂规硶绛惧悕鍏抽敭璇嶅悗闱㈢殑鍐掑彿鐪佺暐鎺夈€?/p>

褰扑綘闇€瑕佽皟鐢ㄤ竴涓柟娉曟椂锛屽氨鏄钖戝疄鐜颁简璇ユ柟娉旷殑瀵硅薄鍙戦€佷竴涓秷鎭纴绠€钥岃█涔嬶纴灏辨槸缁椤璞″彂阃佹秷鎭€傦纸铏界劧钬滃彂阃佹秷鎭€濆父甯哥敤浣溾€滆皟鐢ㄦ柟娉曗€濈殑杩戜箟璇嶏纴浣嗘槸鍦?Objective-C 鐨勮繍琛屾椂涓纴瀹为檯鎯呭喌鏄彂阃佹秷鎭€傦级涓€涓秷鎭氨鏄竴涓柟娉旷殑钖嶅瓧甯︿笂璇ユ柟娉曟墍闇€鐨勫弬鏁颁俊鎭纸瑕佸拰鏁版嵁绫诲瀷姝g‘瀵瑰簲锛夈€备綘钖戝璞″彂阃佺殑鎵€链夋秷鎭兘鏄姩镐佽皟搴︾殑锛屼互姝ゆ潵瀹炵幇 Objective-C 璇█鐨勫镐佹€с€傦纸澶氭€佹€ф槸鎸囷细涓嶅悓绫诲瀷鐨勫璞¢兘鑳藉钖屼竴绉嶆秷鎭仛鍑哄洖搴斻€傦级链夋椂锛屾墍璋幂敤鐨勬柟娉曟槸鐢辨帴鏀舵秷鎭殑瀵硅薄鐨勭被鐨勭埗绫诲疄鐜扮殑銆?/p>

瑕佽皟搴︿竴涓秷鎭纴杩愯镞惰姹傛纭殑娑堟伅琛ㄨ揪鏂瑰纺銆?strong>娑堟伅琛ㄨ揪寮?/strong>鐢变竴瀵规柟鎷彿锛圼 鍜屄燷锛夋妸娑堟伅锛堜互鍙婃墍闇€鐨勫弬鏁帮级鍖呰9璧锋潵锛屾帴鏀舵秷鎭殑瀵硅薄鍐椤湪宸﹁竟鎷彿钖庤竟銆傛瘆濡傦纴瑕佸悜听myArray 鍙橀噺鎵€钖殑瀵硅薄鍙戦€佷竴涓爄nsertObject:atIndex: 娑堟伅锛屼綘瑕佹寜涓嬮溃鐨勮娉曡繘琛屼功鍐欙细

[myArray insertObject:anObject atIndex:0];

涓轰简阆垮厤澹版槑澶ч噺灞€閮ㄥ彉閲忔潵瀛桦偍涓存椂缁撴灉锛孙bjective-C 鍏佽宓屽娑堟伅琛ㄨ揪寮忋€傛疮涓祵濂楃殑琛ㄨ揪寮忚繑锲炵殑鍊奸兘浼氢綔涓轰竴涓弬鏁帮纴鎴栬€呮帴鏀舵秷鎭殑瀵硅薄锛岀敋镊虫槸鍙︿竴涓秷鎭€傛瘆濡傦纴浣犲彲浠ュ皢涓娄竴涓緥瀛愪腑鐨勪换镒忎竴涓彉閲忔浛鎹㈡垚鐢ㄦ秷鎭帴鏀舵暟鍊笺€傝繖镙蜂竴鏉ワ纴濡傛灉浣犺缮链変竴涓彨锅毬爉yAppObject 鐨勫璞★纴瀹冨惈链夎闂暟缁勫璞′互鍙婂皢瀵硅薄鎻掑叆鏁扮粍鐨勬柟娉曪纴浣犲彲浠ュ皢闾d釜渚嫔瓙鏀归€犳垚涓嬮溃杩欐牱锛?/p>

[[myAppObject theArray] insertObject:[myAppObject objectToInsert] atIndex:0];

Objective-C 杩樻彁渚涗简镣硅娉旷壒镐э纴鐢ㄦ潵璁块梾瀛桦彇鏂规硶銆?strong>瀛桦彇鏂规硶鏄璞$殑 get 鍜?set 璇彞锛岃繖閲屾槸灏佽鐨勫叧阌纴灏佽鏄墍链夊璞$殑閲嶈鐗规€с€傚璞℃妸镊繁鐨勭姸镐佸皝瑁咃纸鎴栭殣钘忥级璧锋潵锛屽苟鎻愪緵涓€涓兘璁╂墍链夊疄渚嬭闂繖涓姸镐佺殑阃氱敤鎺ュ彛銆傚埄鐢ㄧ偣璇硶锛屼箣鍓岖殑渚嫔瓙鍙埚彲浠ヨ鏀瑰啓鎴愶细

[myAppObject.theArray insertObject:myAppObject.objectToInsert atIndex:0];

镣硅娉曡缮鍙互鐢ㄦ潵璧嫔€硷细

myAppObject.theArray = aNewArray;

杩欎釜璇硶鍏跺疄鏄燵myAppObject setTheArray:aNewArray]; 杩欎釜璇彞鐨勫彟涓€绉嶈〃杩版柟寮忋€?/p>

钥屼笖锛岃锲炴兂涓€涓嬶纴鍦ㄢ€滀綘鐨勭涓€涓?iOS 搴旂敤钬濇暀绋嬮噷锛屼綘宸茬粡鐢ㄨ绷镣硅娉曟潵瀵瑰彉閲忚繘琛岃祴鍊间简锛?/p>

self.userName = self.textField.text;

涓嬫枃涓殑钬滃凡澹版槑鐨勫睘镐у拰瀛桦彇鏂规硶钬濈珷鑺傚皢钖戜綘璇︾粏浠嬬粛瀛桦彇鏂规硶銆?/p>

绫绘柟娉?/strong>

铏界劧涔嫔墠鐨勮寖渚嬮兘鏄悜绫荤殑瀹炰緥鍙戦€佹秷鎭纴浣嗕綘涔熷彲浠ュ悜绫昏嚜韬彂阃佹秷鎭€傦纸杩欓噷鐨勭被锛屽彲浠ヨ鐞呜В涓虹敱杩愯镞剁敓鎴愮殑听绫?鐨勫璞°€傦级钖戜竴涓被鍙戦€佹秷鎭椂锛岃鏂规硶蹇呴』鍦ㄤ箣鍓嶈澹版槑涓虹被鏂规硶锛岃€屼笉鏄疄渚嬫柟娉曘€傜被鏂规硶鍜?C++ 涓殑闱欐€佹柟娉曞緢鐩镐技銆?/p>

浣犻€氩父浼氩皢绫绘柟娉旷敤浣滃伐铡傛柟娉曪纴鍊熶互鍒涘缓璇ョ被鐨勬柊鐨勫疄渚嬫垨钥呰闂笌璇ョ被鐩稿叧鐨勬煇浜涘叡链変俊鎭€傜被鏂规硶鐨勫0鏄庤娉曞拰瀹炰緥鏂规硶鐨勫崄鍒嗙浉镀忥纴涓嶅悓涔嫔鏄柟娉旷被鍨嬫爣璇嗙鏄竴涓?+ 锷犲彿锛岃€屼笉鏄?钬?鍑忓彿銆?/p>

涓嬮溃鐨勪緥瀛愬睍绀轰简濡备綍鎶娄竴涓被鏂规硶褰扑綔璇ョ被鐨勫伐铡傛柟娉曡繘琛岃皟鐢ㄣ€傚湪链緥涓纴array 鏂规硶鏄灿SArray 绫荤殑涓€涓被鏂规硶锛屽苟涓旇听NSMutableArray 绫荤户鎵裤€傚畠浼氱粰杩欎釜绫荤殑鏂板疄渚嫔垎閰嶅唴瀛桦苟灏呜繖涓疄渚嫔埯濮嫔寲锛屾渶钖庢妸瀹冭繑锲炵粰浣犵殑浠g爜銆?/p>

NSMutableArray *myArray = nil;听 // nil 链川涓婄瓑钖屼簬 NULL

// 鍒涘缓涓€涓柊鏁扮粍锛屽苟灏嗗叾璧嫔€肩粰 myArray 鍙橀噺銆?br> myArray = [NSMutableArray array];

宸插0鏄庣殑灞炴€у拰瀛桦彇鏂规硶

涓€涓睘镐э纴鎸夐€氩父鐨勭悊瑙e氨鏄璞″皝瑁呯殑钟舵€侀噷鐨勪竴椤广€傚畠瑕佷箞鏄竴涓壒镐э纴姣斿钖嶅瓧鎴栬€呴镩诧绂瑕佷箞鏄笌鍙︿竴涓垨澶氢釜鍏朵粬瀵硅薄鐨勫叧鑱斻€傚璞$殑绫诲畾涔変简涓€涓帴鍙o纴浣跨敤璇ュ璞$殑鐢ㄦ埛鍙互銮峰彇锛坓et锛夊拰璁剧疆锛垧et锛夊皝瑁呭睘镐т腑鐨勬暟鍊笺€傝€屾墽琛岃繖涓姛鑳界殑鏂规硶灏卞彨锅氩瓨鍙栨柟娉曘€?/p>

瀛桦彇鏂规硶鍏辨湁涓ょ锛屼笖閮借绗﹀悎涓€濂楀懡钖嶈绾︺€傗€淕etter锛埚彇鍊煎櫒锛夆€濆瓨鍙栨柟娉曡兘澶熻繑锲炴煇涓睘镐х殑鍊硷纴瀹幂殑鏂规硶钖嶅拰璇ュ睘镐у悓钖嶃€傗€沦etter锛堣祴鍊煎櫒锛夆€濆瓨鍙栨柟娉曡兘澶熺粰镆愪釜灞炴€ц祴浜堟柊鐨勫€硷纴瀹幂殑锻藉悕瑙勭害鏄爏et灞炴€у悕绉? 杩欐牱鐨勫舰寮忥纴灞炴€у悕绉扮殑棣栧瓧姣嶅ぇ鍐欍€傚湪 Objective-C 妗嗘灦涓纴鍙湁涓ユ牸鎸夌収瑙勭害瀵瑰瓨鍙栨柟娉曡繘琛屽懡钖嶆墠鑳藉疄鐜板绉嶆妧链€?/p>

Objective-C 鎻愪緵浜?strong>宸插0鏄庣殑灞炴€?/strong>锛屽彲浠ヤ綔涓哄0鏄庣殑渚垮埄阃斿缎锛屾湁镞惰缮鑳戒綔涓哄瓨鍙栨柟娉旷殑瀹炵幇銆傚湪钬滀綘鐨勭涓€涓?iOS 搴旂敤钬濇暀绋嬩腑锛屼綘镟剧粡澹版槑浜喡爑serName 灞炴€э细

@property (nonatomic, copy) NSString *userName;

宸插0鏄庣殑灞炴€т娇寰?getter 鍜?setter 鏂规硶镞犻渶鍦ㄧ被閲屾樉寮忓0鏄庛€傜浉鍙嶏纴浣犲湪澹版槑灞炴€ф椂鍙互鍐冲畾鍏跺叿浣撹涓烘柟寮忥纴铹跺悗瑕佹眰缂栬疟鍣ㄥ熀浜庡睘镐у0鏄庯纴鐢熸垚锛堟垨璇村垱寤猴级瀹为檯鍙敤鐨?getter 鍜?setter 鏂规硶銆傚凡澹版槑鐨勫睘镐у噺灏戜简澶ч噺涓嶅繀瑕佺殑浠g爜锛岃妭鐪佸紑鍙戣€呯殑镞堕棿锛屽苟涓旇浣犵殑浠g爜镟村姞娓呯埥銆佸噺灏戝嚭阌欑殑鍙兘銆?/p>

鍦ㄧ被鎺ュ彛鏂囦欢涓纴瑕佸寘钖睘镐у0鏄庡拰鏂规硶澹版槑銆傚熀链殑澹版槑瑕佷娇鐢燖property听缂栬疟鍣ㄦ寚浠わ纴钖庨溃鏄睘镐х殑绫诲瀷鍜屽悕绉般€备綘杩桦彲浠ヤ负灞炴€ц瀹氢笉钖岀殑阃夐」锛屼篃灏辨槸璇村彲浠ヨ皟鏁村瓨鍙栨柟娉旷殑鍏蜂綋琛屼负鏂瑰纺锛屾瘆濡傚睘镐ф槸钖︿负寮卞紩鐢纴鎴栬€呮槸钖︿负鍙灞炴€с€傝繖浜涢€夐」鍐椤湪听@property听鎸囦护钖庤竟鐨勫浑鎷彿涓€?/p>

涓嬭竟鐨勫嚑琛屼唬镰佸睍绀轰简镟村灞炴€у0鏄庣殑渚嫔瓙锛?/p>

@property BOOL flag;听 听 听 听 听 听 听 听 听 听 // 榛樿鏄彧澹版槑绫诲瀷鍜屽悕绉?br> @property (copy) NSString *nameObject;听 // 鍦ㄨ祴鍊艰绷绋嬩腑鎷疯礉瀵硅薄
@property (readonly) UIView *rootView;听 // 鍙0鏄?getter 鏂规硶

鍦ㄧ被鐨勫疄鐜颁唬镰佷腑锛屼綘瑕佷娇鐢燖synthesize听缂栬疟鍣ㄦ寚浠ゆ潵瑕佹眰缂栬疟鍣ㄦ牴鎹0鏄庣殑鎯呭喌锛岀敓鎴愬瓨鍙栨柟娉曪细

@synthesize flag;
@synthesize nameObject;
@synthesize rootView;

浣犱篃鍙互鎶娐燖synthesize听璇彞鏀惧埌涓€琛岄噷闱细

@synthesize flag, nameObject, rootView;

鍦燖synthesize听鎸囦护涓纴浣犺缮鍙互锻戒护缂栬疟鍣ㄦ坊锷犵浉搴旂殑瀹炰緥鍙橀噺鍒扮被瀹氢箟涓幓銆傝澧炲姞涓€涓疄渚嫔彉閲忥纴鍦ㄥ睘镐х殑钖岖О钖庨溃鍐欎竴涓瓑鍙凤纴铹跺悗鍐欎綘鎯宠鐨勫疄渚嫔彉閲忓悕绉帮细

@synthesize nameObject=_nameObject;

鍧楀璞?/h3>

鍧楀璞?/strong>鏄皝瑁呬简涓€绯诲垪锷熻兘鐨勪竴涓璞★纴鎴栬€呮洿阃氢织鍦拌锛屽畠鏄竴涓唬镰佺墖娈碉纴鑳藉鍦ㄤ换浣曟椂鍒昏鎵ц銆傚畠浠湰璐ㄤ笂灏辨槸鍙Щ妞岖殑鍖垮悕鐨勫嚱鏁帮纴鍙互浣滀负鍏朵粬鏂规硶鐨勫弬鏁颁紶鍏ワ纴涔熷彲浠ヤ綔涓哄叾浠栨柟娉曟垨鍑芥暟鐨勮繑锲炲€笺€傚潡瀵硅薄链韩链夊惈绫诲瀷鐨勫弬鏁拌〃锛屽彲鑳藉甫链変笉纭畾鐨勬垨宸插0鏄庣殑杩斿洖鍊肩被鍨嬨€备綘鍙互鎶娄竴涓潡瀵硅薄璧嫔€肩粰镆愪釜鍙橀噺锛岀劧钖庡湪浣犻渶瑕佺殑镞跺€椤儚璋幂敤鍑芥暟涓€镙疯皟鐢ㄥ畠灏辫浜嗐€?/p>

鑴卞瓧绗︼纸^锛夋槸鍧楃殑璇硶镙囱銆傝缮链夋寜镦ф垜浠啛镇夌殑鍙傛暟璇硶瑙勭害鎵€瀹氢箟鐨勮繑锲炲€间互鍙婂潡瀵硅薄鐨勪富浣掳纸涔熷氨鏄彲浠ユ墽琛岀殑浠g爜锛夈€备笅锲炬槸濡备綍鎶婂潡瀵硅薄璧嫔€肩粰涓€涓彉閲忕殑璇硶璁茶В锛?/p>

blocks

鎺ヤ笅鏉ワ纴鎸夌収璋幂敤鍑芥暟鐨勬柟寮忚皟鐢ㄥ潡瀵硅薄鍙橀噺灏卞彲浠ヤ简锛?/p>

int result = myBlock(4); // 缁撴灉鏄?28

鍧楀璞″彲浠ュ湪灞€閮ㄤ綔鐢ㄥ烟涔嫔唴鍏变韩鏁版嵁銆傚潡瀵硅薄鐨勮繖涓壒镐ч潪甯告湁鐢纴锅囱浣犲疄鐜颁简涓€涓柟娉曪纴璇ユ柟娉曞畾涔変简涓€涓潡瀵硅薄锛岄偅涔堣繖涓潡瀵硅薄灏卞彲浠ヨ闂鏂规硶鍐呯殑灞€閮ㄥ彉閲忓拰鍙傛暟锛埚寘鎷爢镙埚彉閲忥级锛屼篃鍙互璁块梾鍑芥暟鍜屽叏灞€鍙橀噺锛岀敋镊冲寘鎷疄渚嫔彉閲忋€傝繖绉嶈闂槸鍙镐ц川鐨勶纴浣嗗鏋滃彉閲忓0鏄庝娇鐢ㄤ简听__block听淇グ绗︼纴鍒椤畠鐨勫€煎彲浠ュ湪鍧楀璞′腑琚敼鍙朴€傚嵆浣垮湪鏂规硶鎴栧嚱鏁板皝瑁呯殑鍧楀璞¤繑锲炰竴涓€煎苟阌€姣佸叾浣灭敤鍩熶箣钖庯纴鍙瀵硅鍧楀璞$殑寮旷敤涓嶆秷澶憋纴灞€閮ㄥ彉閲忎綔涓哄潡瀵硅薄鐨勪竴閮ㄥ垎灏嗕竴鐩村瓨鍦ㄣ€?/p>

鍜屾柟娉曘€佸嚱鏁扮殑鍙傛暟绫讳技锛屽潡瀵硅薄鍙互琚綋浣滀竴涓洖璋冨嚱鏁般€傚綋鏂规硶鎴栧嚱鏁拌璋幂敤镞讹纴瀹冧滑浼氭墽琛屾煇浜涘姛鑳斤纴骞跺湪钖堥€傜殑镞舵満锲炶皟涔嫔墠璋幂敤瀹冧滑鐨勪唬镰侊纸阃氲绷鍧楀璞★级锛屾潵璇锋眰闄勫姞淇℃伅锛屾垨钥呬粠涓幏鍙栫▼搴忕壒瀹氱殑琛屼负銆傚潡瀵硅薄璁╄皟鐢ㄨ€呰兘澶熷湪璋幂敤鐨勬椂鍊欐彁渚涘洖璋冧唬镰併€傚潡瀵硅薄涓崭细灏呜姹傛暟鎹墦鍖呭埌涓€涓€滀笂涓嬫枃钬濈粨鏋勪腑锛岃€屾槸浠庢柟娉曟垨鍑芥暟鐨勭浉钖屼綔鐢ㄥ烟涓崟銮锋暟鎹€傜敱浜庡潡瀵硅薄浠g爜镞犻渶鍦ㄥ崟镫殑鏂规硶鎴栧嚱鏁颁腑鍙﹀瀹炵幇锛屾墍浠ヤ綘鐨勫疄鐜颁唬镰佽兘澶熷彉寰楁洿锷犵亩娲侊纴鍙镐ф洿寮恒€?/p>

Objective-C 妗嗘灦链夎澶氩甫链夊潡瀵硅薄鍙傛暟鐨勬柟娉曘€傛瘆濡傝繖娈碉纴鍦?UIKit 妗嗘灦閲屽0鏄庝简濡备笅绫绘柟娉曪纴瀹冩湁涓や釜鍧楀璞″弬鏁帮细

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;

杩欎釜鏂规硶鍙互璁╀綘鐢熸垚涓€涓姩鐢绘晥鏋溿€傜涓€涓潡瀵硅薄鍙傛暟鐢ㄦ潵阃夋嫨锷ㄧ敾鏁堟灉锛涚浜屼釜鍧楀璞″弬鏁版寚瀹氩姩鐢诲畬鎴愬悗瑕佹墽琛岀殑浠诲姟銆备笅闱㈢殑渚嫔瓙涓纴绗竴涓潡瀵硅薄灏呜锲惧姩鐢荤殑缁揿熬 alpha 鍊艰涓?0锛堣瀹冨彉鎴愰€忔槑鐨勶级銆傜浜屼釜鍧楀璞″垯鎶婃暣涓锲剧Щ闄ゃ€?/p>

[UIView animateWithDuration:0.2 animations:^{
听 听 view.alpha = 0.0;

听 听 } completion: ^(BOOL finished) {
听 听 if (finished == YES)
听 听 听 听 [view removeFromSuperview];
}];

鍗忚鍜岃寖鐣寸被

鍗忚鍙互鐢ㄦ潵澹版槑鑳藉鍦ㄤ换浣旷被涓疄鐜扮殑鏂规硶锛岀敋镊抽偅浜涘疄鐜拌鏂规硶鐨勭被缁ф圹镊埆鐨勭被銆傚岗璁柟娉曞畾涔夌殑琛屼负鏄嫭绔嬩簬浠讳綍涓€涓被鐨勚€傚岗璁彲浠ュ畾涔変竴涓姹傚叾浠栫被蹇呴』鎵胯瀹炵幇鐨勬帴鍙c€备篃灏辨槸璇达纴濡傛灉浣犵殑绫诲疄鐜颁简鍗忚涓殑鏂规硶锛岄偅涔堣繖涓被灏辨圹璇鸿瀹屾垚璇ュ岗璁€?/p>

浠庡疄鐢ㄧ殑瑙掑害璇存潵锛屽岗璁畾涔変简涓€绯诲垪鏂规硶锛屽苟寤虹珛璧峰璞′箣闂寸殑钬滃悎绾︹€濄€傝€岃繖浜涘璞′笉蹇呮槸浠讳綍涓€涓‘瀹氱殑绫荤殑瀹炰緥銆傝繖涓悎绾︿娇寰楀璞′箣闂村彲浠ヨ繘琛屼氦娴併€傛煇涓璞℃兂瑕佸憡璇夊彟涓€涓璞★纴椹笂灏呜闱复鐨勪簨浠讹纴鎴栬€呮兂瑕佽闂叧浜庨偅浜涗簨浠剁殑寤鸿銆?/p>

UIApplication听绫诲疄鐜颁简鎵€闇€鐨勫簲鐢ㄨ涓恒€备綘涓嶅繀涓轰简鎺ユ敹绠€鍗旷殑搴旂敤褰揿墠钟舵€佺殑娑堟伅钥屽垱寤轰竴涓燯IApplication听鐨勫瓙绫汇€俇IApplication听绫讳细璋幂敤鎸囧畾鐨勫鎵桦璞′腑鐨勭壒瀹氭柟娉曟潵浼犻€挜偅浜涙秷鎭€傚疄鐜颁简听UIApplicationDelegate听鍗忚鏂规硶鐨勫璞″氨鑳藉鎺ユ敹鍒伴偅浜涙秷鎭简锛屽苟涓旇兘澶熸彁渚涘悎阃傜殑鍙嶉銆?/p>

鍦ㄦ圹璇哄疄鐜般€佹垨閲囩敤镆愪釜鍗忚鐨勬帴鍙d唬镰佷腑锛屽岗璁殑钖岖О瑕佸啓鍦ㄧ埗绫诲悕绉板悗杈圭殑涓€瀵瑰皷鎷彿閲岋纸<钬?gt;锛夈€傚湪钬滀綘鐨勭涓€涓?iOS 搴旂敤钬濇暀绋嬮噷锛屼綘閲囩敤浜喡燯ITextFieldDelegate听鍗忚锛?/p>

@interface HelloWorldViewController : UIViewController <UITextFieldDelegate> {
}
@end

鍦ㄥ疄鐜颁腑锛屼綘镞犻渶澹版槑鍗忚鏂规硶銆?/p>

鍗忚鐨勫0鏄庣湅璧锋潵鍜岀被鎺ュ彛寰堢浉浼硷纴涓嶈绷涓嶅悓鐨勬槸鍗忚娌℃湁鐖剁被锛屽苟涓斾笉钖换浣曞疄渚嫔彉閲忥纸浣嗗畠浠兘澶熷0鏄庡睘镐э级銆备笅闱㈢殑渚嫔瓙灞旷ず濡备綍澹版槑鍙湁涓€涓柟娉旷殑绠€鍗曞岗璁细

@protocol MyProtocol
- (void)myProtocolMethod;
@end

瀵逛簬璁稿濮旀墭鍗忚钥岃█锛岄噰鐢ㄤ竴涓岗璁氨绛変簬鏄疄鐜拌鍗忚涓畾涔夌殑鏂规硶銆傛湁浜涘岗璁姹备綘鏄庣‘澹版槑浣犱细鏀寔璇ュ岗璁纴钥屾湁浜涘岗璁垯鏄棦鍖呭惈蹇呴』瀹炵幇鐨勬柟娉曪纴涔熷寘钖彲阃夋柟娉曘€?/p>

褰扑綘鍦?Objective-C 妗嗘灦涓祻瑙埚ご鏂囦欢镞讹纴浣犲緢蹇氨浼氱湅鍒扮被浼艰繖镙风殑璇彞锛?/p>

@interface NSDate (NSDateCreation)

杩栾璇彞澹版槑浜嗕竴涓寖鐣寸被锛坈ategory锛夛纴鍏惰娉曟槸灏呜寖鐣寸被鐨勫悕绉板寘瑁瑰湪涓€瀵瑰浑鎷彿涓€?strong>锣幂暣绫?/strong>鏄?Objective-C 璇█鐨勪竴涓壒镐э纴璁╀綘鑳藉鎵╁睍镆愪釜绫荤殑鎺ュ彛锛岃€屾棤闇€鍒涘缓瀹幂殑瀛愮被銆傝寖鐣寸被涓殑鏂规硶灏嗘垚涓烘绫荤殑涓€閮ㄥ垎锛埚湪浣犵殑绋嫔簭浣灭敤鍩熻寖锲村唴锛夛纴骞朵细琚绫荤殑鎵€链夊瓙绫荤户鎵裤€备綘鍙互钖戞绫伙纸鎴栧畠鐨勫瓙绫伙级鐨勪换镒忎竴涓疄渚嫔彂阃佹秷鎭潵璋幂敤锣幂暣绫讳腑澹版槑鐨勬柟娉曘€?/p>

浣犲彲浠ュ埄鐢ㄨ寖鐣寸被鍦ㄤ竴涓ご鏂囦欢閲岀粍缁囦簰鐩稿叧鑱旂殑鏂规硶澹版槑銆备綘鐢氲呖鍙互鍦ㄤ笉钖岀殑澶存枃浠朵腑鏀惧叆涓嶅悓鐨勮寖鐣寸被澹版槑銆侰ocoa Touch 妗嗘灦鍜?Cocoa 妗嗘灦鍦ㄥ嚑涔庢墍链夊ご鏂囦欢涓兘鍒╃敤浜呜繖涓妧链纴浠g爜鎵嶅姝ゆ槑鏅般€备綘杩樿兘浣跨敤鍖垮悕锣幂暣绫伙纸涔熷氨鏄湪鍦嗘嫭鍙蜂腑涓嶅啓浠讳綍瀛楃锛夛纴杩欐牱鍙互鎶婂疄渚嫔彉閲忛殣钘忓湪绉佹湁鐨勫疄鐜版枃浠堕噷銆?/p>

棰勫畾涔夌被鍨嫔拰缂栫爜绛栫暐

鍦?Objective-C 璇█涓湁涓€浜涚壒瀹氱殑璇嶆眹锛屼綘瑕侀伩鍏嶅湪澹版槑鍙橀噺镞朵娇鐢ㄨ繖浜涜瘝姹囷纴锲犱负瀹冧滑閮芥湁涓挞桊鐨勭敤阃斻€傚叾涓湁涓€浜涙槸缂栬疟鍣ㄦ寚浠わ纴浠?@ 绗﹀彿寮€澶达纸渚嫔听@interface听鍜屄燖end锛夈€傛湁浜涗缭鐣栾瘝姹囨槸棰勫畾涔夌被鍨嬶纴浠ュ强鍜岃繖浜涚被鍨嬫湁鍏崇殑鏂囧瓧銆侽bjective-C 浣跨敤涓€绯诲垪涓嶅睘浜?ANSI C 鐨勯瀹氢箟绫诲瀷鍜岃瘝姹囥€傚湪镆愪簺鎯呭喌涓嬶纴杩欎簺绫诲瀷鍜岃瘝姹囦细浠f浛瀹冧滑鍦?ANSI C 涓殑瀵瑰簲钥呫€备笅琛ㄥ垪鍑轰简鍑犱釜闱炲父閲嶈鐨勭被鍨嬶纴鍖呮嫭姣忎釜绫诲瀷鎵€鍏佽鐨勮瘝姹囥€?/p>

绫诲瀷銆佹弿杩板拰璇嶆眹锛?/strong>
id 钬?锷ㄦ€佸璞$被鍨嬨€傚姩镐佺被鍨嫔拰闱欐€佺被鍨嫔璞$殑钖﹀畾璇嶆眹涓郝爊il銆?br> Class 钬?锷ㄦ€佺被鐨勭被鍨嬨€傚畠鐨勫惁瀹氲瘝姹囦负听Nil銆?br> SEL 钬?阃夋嫨鍣ㄧ殑鏁版嵁绫诲瀷锛坱ypedef锛夛绂杩欑鏁版嵁绫诲瀷浠h〃杩愯镞剁殑涓€绉岖钖嶆柟娉曘€傚畠鐨勫惁瀹氲瘝姹囦负听NULL銆?br> BOOL 钬?甯冨皵鍨嬨€备唬琛ㄥ畠鐨勫€肩殑璇嶆眹涓郝燳ES听鍜屄灿O銆?/p>

浣犻€氩父浼氩湪浠g爜鎺挜敊浠ュ强娴佺▼鎺у埗涓娇鐢ㄨ繖浜涢瀹氢箟鐨勭被鍨嫔拰璇嶆眹銆傚湪绋嫔簭鐨勬祦绋嬫带鍒惰鍙ヤ腑锛屼綘鍙互阃氲绷妫€娴嬬壒瀹氲瘝姹囨潵鍒ゆ柇濡备綍閲囧彇涓嬩竴姝ュ姩浣溿€备緥濡傦细

NSDate *dateOfHire = [employee dateOfHire];
if (dateOfHire != nil) {
听 听 // 澶勭悊姝ょ鎯呭喌
}

鎶娄唬镰佽В閲娄竴涓嬶细濡傛灉瀵硅薄浠h〃鐨勮仒鐢ㄦ棩链熶笉涓郝爊il锛屼篃灏辨槸璇存槸涓€涓悎娉旷殑瀵硅薄锛岄偅涔堥€昏緫灏辨浈涓€涓壒瀹氱殑鏂瑰悜鍙戝睍銆备笅杈规槸杩欐浠g爜鐨勭亩鍖栫増锛屾晥鏋沧槸鐩稿悓鐨勶细

NSDate *dateOfHire = [employee dateOfHire];
if (dateOfHire) {
听 听 // 澶勭悊姝ょ鎯呭喌
}

浣犵敋镊冲彲浠ユ妸浠g爜绠€鍖栨垚杩欎釜镙峰瓙锛埚墠鎻愭槸浣犱笉闇€瑕佸紩鐢燿ateOfHire听瀵硅薄锛夛细

if ([employee dateOfHire]) {
听 听 // 澶勭悊姝ょ鎯呭喌
}

澶勭悊甯冨皵鍊肩殑鏂规硶鏄竴镙风殑銆傚湪杩欎釜渚嫔瓙涓纴isEqual:听鏂规硶浼氲繑锲炰竴涓竷灏斿瀷鐨勫€硷细

BOOL equal = [objectA isEqual:objectB];
if (equal == YES) {
听 听 // 澶勭悊姝ょ鎯呭喌
}

浣犲悓镙峰彲浠ユ寜镦у墠杈圭渷鐣ヂ爊il听鐨勬柟寮忔潵绠€鍖栬繖娈典唬镰併€?/p>

鍦?Objective-C 璇█閲岋纴浣犲彲浠ュ听nil听鍙戦€佹秷鎭纴涓嶅繀鎷呭绩浠讳綍鍓綔鐢ㄣ€傚叾瀹烇纴鏄牴链笉浼氭湁浠讳綍浣灭敤锛屽彧涓嶈绷杩愯镞朵细杩斿洖听nil锛屽鏋沧柟娉曟湰鏉ヨ杩斿洖涓€涓璞$殑璇濄€傚彂阃佺粰听nil听鐨勬秷鎭繑锲炵殑鍊煎彧瑕佹槸涓€涓璞★纴浠g爜灏辫兘缁х画姝e父宸ヤ綔銆?/p>

鍙﹀涓や釜閲嶈鐨勯鐣栾瘝姹囨槸听self听鍜屄爏uper銆傚墠钥吢爏elf听鏄釜灞€閮ㄥ彉閲忥纴浣犲彲浠ュ湪娑堟伅瀹炵幇涓妸瀹幂湅锅氩綋鍓嶅璞¤繘琛屽紩鐢绂瀹冨拰 C++ 璇█涓殑听this听鏄竴镙风殑銆备綘鍙互鐢ㄩ鐣栾瘝姹嘤爏uper听镟挎崲听self锛屼絾鍙兘浣滀负娑堟伅琛ㄨ揪寮忕殑鎺ユ敹钥呫€傚鏋滀綘瀵孤爏elf听鍙戦€佷简娑堟伅锛岄偅涔堣繍琛屾椂棣栧厛灏变细鍦ㄨ繖涓璞$殑绫讳腑瀵绘垒鐩稿簲鐨勬柟娉曞疄鐜帮绂濡傛灉杩欓噷鎵句笉鍒帮纴闾d箞瀹冧细杞€屽埌鍏剁埗绫讳腑铡绘煡鎵撅纸濡傛寰€澶嶏级銆傚鏋滀綘瀵孤爏uper听鍙戦€佹秷鎭纴杩愯镞堕鍏埚氨鏄幓鐖剁被涓鎵炬柟娉旷殑瀹炵幇銆?/p>

鍒╃敤听self听鍜屄爏uper听涓昏鏄负浜嗗彂阃佹秷鎭€傚綋琚皟鐢ㄧ殑鏂规硶鍦爏elf听鐨勭被涓瀹炵幇涔嫔悗锛屼綘灏卞彲浠ュ悜听self听鍙戦€佹秷鎭纴渚嫔锛?/p>

[self doSomeWork];

self 杩桦彲浠ョ敤鍦ㄧ偣璇硶涓纴鐢ㄦ潵璋幂敤鐢卞凡澹版槑鐨勫睘镐х敓鎴愮殑瀛桦彇鏂规硶锛屼緥濡傦细

NSString *theName = self.name;

浣犲父甯镐细鍦ㄩ吨杞斤纸镞㈤吨鏂板疄鐜板凡链夌殑鏂规硶锛変粠鐖剁被缁ф圹钥屾潵鐨勬柟娉曟椂钖懧爏uper听鍙戦€佹秷鎭€傚湪杩欑鎯呭喌涓嬶纴琚皟鐢ㄧ殑鏂规硶鎷ユ湁鍜岄吨杞藉悗鏂规硶鐨勭钖岖浉钖屻€?/p>

娉细链€奿OS搴旂敤寮€鍙戝叆闂ㄦ寚鍗椼€嬭疟镊娴鏋滃畼鏂?iOS 寮€鍙戣€呰祫婧愬簱涓殑听Start Developing iOS Apps Today听绯诲垪鏁欑▼銆?/p>

最后更新:2017-04-04 07:03:36

  上一篇:go 【设计模式】【工厂方法】
  下一篇:go maven sonatype相关网站