锘??xml version="1.0" encoding="utf-8" standalone="yes"?>女人香蕉久久**毛片精品,亚洲国产二区三区久久,久久se精品一区二区影院http://www.shnenglu.com/cuigang//*=========================================*/zh-cnTue, 06 May 2025 23:16:11 GMTTue, 06 May 2025 23:16:11 GMT60鐢∣BJC緙栫▼ 9 - Conventionshttp://www.shnenglu.com/cuigang/archive/2013/11/23/204397.htmlcuigangcuigangSat, 23 Nov 2013 03:33:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/23/204397.htmlhttp://www.shnenglu.com/cuigang/comments/204397.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/23/204397.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204397.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204397.html鐢∣BJC緙栫▼ 9 - Conventions
  • 鏈変簺鍚嶅瓧鍦ㄤ綘鐨刟pp閲屽繀欏誨敮涓
  • 綾誨悕蹇呴』鍞竴錛屽洜姝よ浣跨敤鍓嶇紑錛屽緩璁嬌鐢ㄤ笁涓瓧姣嶇殑鍓嶇紑錛岄伩鍏嶅拰Cocoa妗嗘灦鍐茬獊錛岀被鍚嶄嬌鐢ㄥ悕璇?/span>
  • 鏂規硶鍚嶄笉瑕佸墠緙錛屼互灝忓啓瀛楁瘝寮濮嬶紝澶氫釜鍙傛暟鏃訛紝鍏跺畠鍙傛暟瑕佹湁鍙傛暟鍚嶃傜涓涓崟璇嶆寚鏄庢柟娉曠殑鏁堟灉錛屾垨鑰呬竴涓涓虹瓑絳夈?/span>
  • 濡傛灉鏂規硶鍙傛暟鍖呮嫭error錛屽畠搴旇鏄渶鍚庝竴涓弬鏁幫紝濡傛灉鍙傛暟鍖呮嫭涓涓猙lock錛屽畠搴旇鍦ㄦ渶鍚庯紝涓嶅簲璇ユ湁澶氫釜block鍙傛暟銆傛柟娉曞悕闀垮害瑕侀備腑銆?/span>
  • 閬垮厤緙╁啓
  • 鍒嗙被閲岀殑鏂規硶鍚嶅姞涓婂墠緙錛岄伩鍏嶅啿紿併?/span>
  • 灞閮ㄥ彉閲忓簲璇ユ槸鍞竴鐨勩?/span>
  • 璁塊棶鍣ㄧ殑鍚嶇О瑕佺鍚堟儻渚嬨傚惁鍒欏湪KVC鏃跺彲鑳戒笉鑳藉伐浣溿?/span>
  • 宸ュ巶鏂規硶鍚嶅簲璇ヤ互綾誨悕寮濮嬶紙鎴栬呯埗綾葷殑綾誨悕錛?/span>


cuigang 2013-11-23 11:33 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 8 - Dealing with Errorshttp://www.shnenglu.com/cuigang/archive/2013/11/23/204396.htmlcuigangcuigangSat, 23 Nov 2013 03:14:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/23/204396.htmlhttp://www.shnenglu.com/cuigang/comments/204396.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/23/204396.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204396.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204396.html鐢∣BJC緙栫▼ 8 - Dealing with Errors
浣跨敤NSError錛?/span>

濮旀墭鏂規硶浼氫駭鐢烢rror
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
NSError鍖呮嫭閿欒鐮侊紝閿欒涓氬姟棰嗗煙domain鍜屾弿榪般備負淇濊瘉姣忎釜閿欒鐮佸敮涓錛屼嬌鐢ㄤ簡domain錛孨SURLConnection鐨刣omain鏄疦SURLErrorDomain

閫氳繃寮曠敤鍙傛暟浼犻扙rror
-(BOOL)WriteToURL:(NSURL *)aURL option:(NSDataWritingOptions)mask error:(NSError**) errorPtr;
//////////////////////////
NSError *anyError;
BOOL sucess = [receivedData writeToURL:someLocalFileURL option:0 error:&anyError];
if(!success){
    NSLog(@"Write failed with error: %@", anyError);
    
//present error to user
}
// 濡傛灉writeToURL鍙戠敓閿欒錛岃繑鍥濶O錛屽茍涓旀洿鏂癮nyError
// 濡傛灉浣犲error涓嶆劅鍏磋叮錛屽彲浠ヤ紶閫扤ULL

浜х敓浣犺嚜宸辯殑error
NSString *domain = @"com.MyCompany.MyApplication.ErrorDomain";
NSString *desc = NSLocalizedString(@"Unable to,,,"@"");
NSDictionary *userInfo = @{NSLocalizedDescriptionKey : desc};

NSError *error = [NSError errorWithDomain:domain code:-101 userInfo:userInfo];
//////////////////////
- (BOOL) doSomethingThatMayGenerateAnError:(NSError **)errorPtr;

//////////////////
-(BOOL)doSomethingThatMayGenerateAnError:(NSError **)errorPtr{
  
//,,,
  
// error occurred
  if(errorPtr){
    
*errorPtr = [NSError errorWithDomain:,,,  code:,,, userInfo:,,,];
  }
  
return NO;
}

浣跨敤寮傚父
OBJC鍍忓叾浠栬璦涓鏍鋒敮鎸佸紓甯革紝NSException鍜孨SError涓鏍鋒槸涓涓璞?/span>
@try{
   
// 鍙兘瀵艱嚧寮傚父
}
@catch (NSException *exception){
   
// 澶勭悊寮傚父
}
@finally{
   
// 娓呯悊錛屽鐞嗘棤寮傚父鎯呭喌
}







cuigang 2013-11-23 11:14 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 7 - Working with Blockshttp://www.shnenglu.com/cuigang/archive/2013/11/21/204370.htmlcuigangcuigangThu, 21 Nov 2013 11:20:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/21/204370.htmlhttp://www.shnenglu.com/cuigang/comments/204370.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/21/204370.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204370.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204370.html
鐢∣BJC緙栫▼ 7 - Working with Blocks

Block 鏄璦綰у埆鐨勭壒鎬с傚畠鏄竴涓狾BJC鐨勫璞★紝鍙互琚姞鍏ュ鍣ㄥNSArray鎴朜SDictionary銆傚畠鍙互鎹曡幏鎵澶勪綔鐢ㄥ煙鐨勬暟鍊鹼紝闈炲父綾諱技鍏跺畠璇█鐨刢losure鎴栬卨ambda銆?/span>

璇硶
^{
    NSLog(@"This is a block");
}

鍙互鍍忓嚱鏁版寚閽堥偅鏍峰0鏄庝竴涓彉閲忔潵鎸佹湁榪欎釜block
void (^simpleBlock)(void);
simpleBlock = ^{
   NSLog(@"This is a block");
}; // 娉ㄦ剰榪欓噷鏈変竴涓垎鍙?/span>

涔熷彲浠ヨ繖鏍峰啓
void (^simpleBlock)(void= ^{
    NSLog(@"This is a block");
};

璋冪敤榪欎釜block
simpleBlock();

甯︿笂鍙傛暟鍜岃繑鍥炲?/span>
^double (double firstValue, double secondValue){
    
return firstValue*secondValue;
}
// ,,,,,,,,,,,
double (^multiplyTwoValues)(doubledouble= 
    
^(double firstValue, double secondValue) { // 榪斿洖鍊肩被鍨嬪彲浠ョ渷鐣?/span>
          return firstValue*secondValue;
     };

double result = multiplyTwoValues(2,4);
NSLog(@"The result is %f", result);

鎹曡幏Enclosing Scope鍐呯殑鍊?/span>錛屼竴鏃︽崟鑾鳳紝榪欎釜鍊煎氨涓嶄細鍙樺寲錛屽嵆渚垮悗緇敼鍙樿繖涓?/span>
-(void)testMethod{
  
int anInteger = 42;
  
void (^testBlock)(void= ^{
       NSLog(@"Integer is: %i", anInteger);
  }
  anInteger = 84;
  testBlock(); // 浠嶇劧杈撳嚭42
}

浣跨敤__block
__block int anInteger = 42;
void (^testBlock)(void= ^{
  NSLog(@"Integer is: %i", anInteger);
};
anInteger = 84:
testBlock();  // output 84;

// ,,,,,,,,,,,,,

_block int anInteger = 42;
void (^testBlock)(void= ^{
  NSLog(@"Integer is: %i", anInteger); // output 42
  anInteger = 100;
};

testBlock();
NSLog(@"Value of original variable is now: %i", anInteger); // output 100;

閫氳繃鍙傛暟浼犻払lock錛屼緥濡傚疄鐜頒竴涓洖璋?/span>
-(IBAction)fetchRemoveInformation:(id)sender{
  [self showProgressIndicator];
  XYZWebTask *task = //,,,

  [task beginTaskWithCallbackBlock:^{
        [self hideProgressIndicator];
      }];
}

// beginTaskWithCallbackBlock 鐨勫畾涔夋槸榪欐牱鐨?/span>

-(void)beginTaskWithCallbackBlock:(void)(^)(void))callbackBlock{
  
//,,,
  callbackBlock();
}

鏈浣沖疄璺墊槸灝哹lock浣滀負鏈鍚庝竴涓弬鏁幫紝榪欐牱渚夸簬闃呰銆?/span>

涔熷彲浠ヤ嬌鐢╰ypedef綆鍖栬娉?/span>
typedef void (^XYZSimpleBlock)(void);
//,,,,,,,,,,,,,,,
XYZSimpleBlock anotherBlock = ^/*,,,*/ };
//,,,,,,,,,,,,
-(void)beginFetchWithCallbackBlock:(XYZSimpleBlock)callbackBlock{
    
//,,,,
    callbackBlock();
}

鍙互灝哹lock浣滀負灞炴?/span>
@interface XYZObject : NSObject
@property (copy) void (^blockProperty)(void); // 蹇呴』浣跨敤copy
@end
//,,,,,,,,,,,,,,
self.blockProperty = ^/* ,,, */ };
self.blockProperty();

閬垮厤寮哄紩鐢ㄥ驚鐜?/span>
鍦╞lock閲屾崟鑾穝elf錛岃濡傚湪涓涓猚allback block閲岋紝浼氬紩鍏ュ唴瀛樼鐞嗛棶棰樸俠lock浼氫細緇存姢涓涓崟鑾峰璞$殑寮哄紩鐢紝鍖呮嫭self
@interface XYZBlockKeeper : NSObject
@property (copy) void (^block)(void);
@end
////////////////////////
@implementation XYZBlockKeeper
-(void)configureBlock{
  self.block = ^{
    [self doSomething];    // 鎹曡幏浜嗕竴涓猻elf鐨勫己寮曠敤
                           
// 寤虹珛浜嗕竴涓己寮曠敤寰幆
  }
}
@end

涓婅堪浠g爜浼氫駭鐢熶竴涓紪璇戣鍛婏紝涓轟簡閬垮厤榪欑鎯呭喌錛屾渶浣沖疄璺墊槸鎹曡幏涓涓猻elf鐨勫急寮曠敤
-(void)configureBlock{
   XYZBlockKeeper * __weak weakSelf = self;
   self.block = ^ {
      [weakSelf doSomething];
   };
}

block鍙互綆鍖栨灇涓撅紙鐣ワ級
block鍙互綆鍖栧茍鍙戜換鍔★紙鐣ワ級





cuigang 2013-11-21 19:20 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 6 - Value and Collectionshttp://www.shnenglu.com/cuigang/archive/2013/11/21/204367.htmlcuigangcuigangThu, 21 Nov 2013 09:34:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/21/204367.htmlhttp://www.shnenglu.com/cuigang/comments/204367.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/21/204367.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204367.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204367.html闃呰鍏ㄦ枃

cuigang 2013-11-21 17:34 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 5 - Working with Protocolshttp://www.shnenglu.com/cuigang/archive/2013/11/21/204364.htmlcuigangcuigangThu, 21 Nov 2013 01:32:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/21/204364.htmlhttp://www.shnenglu.com/cuigang/comments/204364.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/21/204364.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204364.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204364.html鐢∣BJC緙栫▼ 5 - Working with Protocols
鍗忚瀹氫箟浜嗕氦浜掔殑娑堟伅
@protocol XYZPieChartViewDataSource
- (NSUInteger) numberOfSegments;
- (CGFloat)    sizeOfSegmentAtIndex:(NSUInteger)segmentIndex;
- (NSString *) titleForSegmentAtIndex:(NSUInteger)segmentIndex;
@end

鏁版嵁婧愪綔涓篤iew鐨勪竴涓睘鎬э紝鍙鏄鍚堝崗璁殑瀵硅薄灝卞彲浠ワ紝鎵浠ョ被鍨嬫槸id銆?/span>
@interface XYZPieChartView : UIView
@property (weak) id <XYZPieChartViewDataSource> dataSource;
@end
濮旀墭鍜屾暟鎹簮灞炴ч氬父澹版槑涓簑eak錛屼互閬垮厤寮哄紩鐢ㄥ驚鐜?/span>

璁劇疆灞炴т負涓涓笉絎﹀悎鍗忚鐨勫璞★紝灝嗕細寮曡搗涓涓紪璇戞椂璀﹀憡銆?/span>

鍙夋柟娉曪紝浣跨敤@optional 鍜?@required
@protocol XYZPieChartViewDataSource
- (NSUInteger) numberOfSegments;
- (CGFloat)    sizeOfSegmentAtIndex:(NSUInteger)segmentIndex;
@optional
- (NSString *) titleForSegmentAtIndex:(NSUInteger)segmentIndex;
- (BOOL)       shouldExplodeSegmentAtIndex:(NSUInteger)segementIndex;
@required
- (UIColor *)  colorForSegmentAtIndex:(NSUInteger)segementIndex;
@end

榪愯鏃舵鏌ュ彲閫夋柟娉?/span>
濡傛灉涓涓柟娉曟槸鍙夌殑錛岄偅涔堝湪璋冪敤鍓嶅簲璇ユ鏌ュ畠鏄惁瀹炵幇銆?/span>
NSString *thisSegmentTitle; // Local object variables are automatically initialized to nil
if([self.dataSource respondsToSelector:@selector(titleForSegmentAtIndex:)]){
    thisSegmentTitle = [self.dataSource titleForSegmentAtIndex:index];
}

respondsToSelector: 鏂規硶鐢ㄤ簡涓涓猻elector錛孈selector銆?/span>
濡備笂瀹氫箟涓涓鍚堝崗璁殑id綾誨瀷錛岃皟鐢╮espondsToSelector錛屼細浜х敓涓涓紪璇戞椂閿欒錛岃В鍐蟲柟妗堟槸澹版槑瀵硅薄絎﹀悎NSObject鍗忚

浠庡崗璁戶鎵?/span>
鏈浣沖疄璺墊槸錛屼綘鐨勫崗璁緷浠嶯SObject鍗忚銆侼SObject瀵硅薄渚濅粠NSObject鍗忚銆?/span>
涓鏃︿綘鐨勫崗璁緷浠嶯SObject鍗忚錛岄偅涔堜緷浠庝綘鍗忚鐨勪換浣曞璞¢兘蹇呴』瀹炵幇NSObject鍗忚鐨勬柟娉曪紝浣嗗洜涓哄畠浠簲璇ユ槸NSObject鐨勫瓙綾伙紝浣犲氨涓嶅繀鑷繁瀹炵幇榪欎簺NSObject鐨勬柟娉曘備緷浠嶯SObject鍗忚闈炲父鏈夌敤銆?/span>
@protocol MyProtocol <NSObject>

@end

comform 涓涓崗璁?/span>
@interface MyClass : NSObject <MyProtocol, AnotherProtocol>

@end
濡傛灉涓涓被澹版槑浜嗗ぇ閲忕殑鍗忚錛屾剰鍛崇潃浠g爜闇瑕侀噸鏋勬垚澶氫釜灝忕殑綾匯?/span>

涓鏃﹀0鏄庝緷浠庢煇涓崗璁紝灝卞繀欏誨疄鐜版墍鏈夌殑required鏂規硶錛屽拰闇瑕佺殑optional鏂規硶錛屽惁鍒欑紪璇戝櫒浼氱粰鍑鴻鍛娿傛柟娉曠殑絳懼悕蹇呴』鐩稿悓銆?/span>

Cocoa 鍜?Cocoa Touch 瀹氫箟浜嗗ぇ閲忕殑protocol
  • view鐨勬暟鎹簮鍗忚
  • view鐨勫鎵樺崗璁甦elegate
  • 涓浜涚被浼肩殑綾伙紝浣嗘槸鏃犵戶鎵垮叧緋伙紝姣斿NSArray鍜孨SDictionary渚濅粠NSCoding鍗忚
  • 涓浜汷BJC璇█綰х壒鎬э紝涔熶緷璧栧崗璁紝濡備竴涓鍣ㄩ渶瑕佷緷浠嶯SFastEnumeration鍗忚鎵嶈兘浣跨敤蹇熸灇涓緁ast enumeration錛沜opy鐨勫睘鎬т緷浠嶯SCopying鍗忚錛屽惁鍒欎細寰楀埌涓涓繍琛屾椂寮傚父銆?/span>

涓哄尶鍚嶄嬌鐢ㄥ崗璁?/span>

鏈夋椂鍊欙紝涓涓鏋剁殑寮鍙戣呬負浜嗗悜浣跨敤鑰呴殣钘忎竴涓被錛屽彧鎶婂畠鐨勬帴鍙i氳繃鍗忚鏆撮湶

id <XYZFrameworkUtility> utility = [frameworkObject anonymousUtility];

渚嬪NSFetcheResultsController
NSInteger sectionNumber = //,,,
id <NSFetchedResultSectionInfo> sectionInfo = 
          [self.fetchedResultsController.sections objectAtIndex:sectionNumber];
NSInteger numberOfRowsInSection = [sectionInfo numberOfObjects];







cuigang 2013-11-21 09:32 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 4 - Customizing Existing Classeshttp://www.shnenglu.com/cuigang/archive/2013/11/20/204359.htmlcuigangcuigangWed, 20 Nov 2013 10:55:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/20/204359.htmlhttp://www.shnenglu.com/cuigang/comments/204359.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/20/204359.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204359.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204359.html鐢∣BJC緙栫▼ 4 - Customizing Existing Classes
閫氳繃Category涓虹被澧炲姞鏂規硶
#import "XYZPerson.h"
@interface XYZPerson (XYZPersonNameDisplayAddtions)
- (NSString *)lastNameFirstNameString;
@end
// ----------------------
#import "XYZPerson+XYZPersonNameDisplayAddtions.h"
@implementation XYZPerson (XYZPersonNameDisplayAddtions)
- (NSString *)lastNameFirstNameString{
  
return [NSString stringWithFormat:@"%@ %@", self.lastName, self.firstName];
}
@end
//-------------------------------
#import "XYZPerson+XYZPersonNameDisplayAddtions.h"
@implementation SomeObject
-(void) someMethod{
  XYZPerson *person = [[XYZPerson alloc] initWithFirstName:@"John", lastName:@"Doe"];
  NSLog(@"The people is %@", [person lastNameFirstNameString]);
}
@end

Category 鍙互澧炲姞浠諱綍鐨勫疄渚嬫柟娉曞拰綾繪柟娉曪紝浣嗘槸閫氬父涓嶉傚悎澧炲姞Property錛岃櫧鐒惰娉曚笂鍙互澹版槑涓涓狿roperty錛屼絾涓嶈兘閫氳繃Category澧炲姞涓涓疄渚嬪彉閲忋傝繖鎰忓懗鐫涓嶈兘synthesize浠諱綍瀹炰緥鍙橀噺錛?涔熸病鏈夊瓨鍙栨柟娉曘?浣犲彲浠ュ啓鑷繁鐨刟ccessor錛屼絾鏄笉鑳絢eep track property錛屽畠浠瓨鍌ㄥ湪鍘熷鐨勭被閲屻?/span>

閬垮厤鍚嶅瓧鍐茬獊
Category 鐨勬柊澧炴柟娉曞彲鑳戒細瀵艱嚧鍚嶅瓧鍐茬獊錛屽湪榪愯鏃跺彲鑳戒細鍑虹幇鏈煡鐨勮涓猴紝涓轟簡閬垮厤榪欑鎯呭喌錛岄渶瑕佸鍔犲墠緙
@interface NSSortDescriptor (XYZAdditions)
+ (id)xyz_sortDescriptorWithKey:(NSString *)key ascending:(BOOL)ascending;
@end
//  ------ use it -------
NSSortDescriptor *descriptor = [NSSortDescriptor xyz_sortDescriptorWithKey:@"name" ascending:YES];

綾繪墿灞曠被浼煎垎綾伙紝浣嗗彧鑳界敤浜庣紪璇戞椂鏈夋簮鐮佹儏鍐碉紝騫朵笖蹇呴』鍐欏湪瀹炵幇鏂囦歡閲岋紝鍥犳涓嶈兘閫氳繃榪欎釜涓烘鏋剁被鎵╁睍銆傛墿灞曡娉曠被浼煎垎綾?/span>
@interface ClassName ()
{
    id _someCustomInstanceVariable;
}
@property NSObject *extraProperty;
@end
涔熷彨鍖垮悕鍒嗙被銆備笉鍍忓垎綾婚偅鏍鳳紝鎵╁睍鍙互澧炲姞灞炴у拰瀹炰緥鍙橀噺銆傜紪璇戝櫒浼氳嚜鍔╯ynthesize accessor鏂規硶銆傚鏋滀綘澧炲姞鏂規硶錛屽繀欏誨疄鐜板湪涓昏鐨凘implementation浠g爜鍧楅噷銆?/span>

鍙互鐢ㄦ墿灞曟潵澹版槑縐佹湁灞炴у拰鏂規硶
@interface XYZPerson:NSObject
@proerty (readonly) NSString *uniqueIdentifier;
-(void)assignUniqueIdentifier;
@end

/// ---------------------

@interface XYZPerson ()
@property (readwrite) NSString *uniqueIdentifier;
@end

@implementation XYZPerson
// ,,,
@end
鍍忎笂闈㈤偅鏍烽噸澶嶅0鏄巙niqueIdentifier涓簉eadwrite錛屾瘡涓涓繍琛屾椂鐨刋YZPerson瀵硅薄閮藉皢瀛樺湪涓涓猻etter銆?/span>
浠諱綍璁塊棶縐佹湁鏂規硶錛屾垨鑰卻et涓涓猺eadonly灞炴х殑琛屼負錛岀紪璇戝櫒閮戒細浜х敓閿欒錛屼絾鏄彲浠ラ氳繃鍔ㄦ佽繍琛屾椂鐗規ч伩鍏嶇紪璇戝櫒閿欒錛岃濡傝皟鐢∟SObject鐨刾erformSelector鏂規硶銆?/span>

濡傛灉浣犳墦綆楁瀯寤虹鏈夋柟娉曟垨灞炴э紝浣犲彲浠ュ0鏄庝竴涓垎紱葷殑澶存枃浠舵潵澹版槑鎵╁睍錛岃濡俋YZPerson.h鍜孹YZPersonPrivate.h

鍒嗙被鍜屾墿灞曞茍涓嶆槸瀹氬埗涓涓被鐨勫敮涓閫斿緞錛屼篃涓嶆槸鏈濂芥柟娉曪紝瑕佽冭檻鍙惁浣跨敤瀛愮被鍖栨垨鑰呭鎵樼殑鏂規硶鏉ュ疄鐜般?/span>




cuigang 2013-11-20 18:55 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 3 -Encapsulating Datahttp://www.shnenglu.com/cuigang/archive/2013/11/20/204356.htmlcuigangcuigangWed, 20 Nov 2013 08:49:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/20/204356.htmlhttp://www.shnenglu.com/cuigang/comments/204356.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/20/204356.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204356.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204356.html
鐢∣BJC緙栫▼3-Encapsulating Data

@interface XYZPerson :NSObject
@property NSString *firstName;
@property NSString *lastName;
@end

/// ============

NSString *firstName = [somePerson firstName];
[somePerson setFirstName:@"Johnny"];

闄愬畾灞炴т負鍙錛屼篃鍙檺瀹氫負readwrite錛屼絾榪欎笉蹇咃紝鍥犱負緙虹渷濡傛槸銆?/span>
@property (readonly) NSString *fullname;

鍙互鎸囧畾灞炴х殑璁塊棶鍣ㄥ悕縐幫紝澶氫釜闄愬畾璇嶅涓嬫牸寮?/span>
@property (readonly, getter=isFinished) BOOL finished;

浣跨敤鐐硅娉?/span>
NSString *firstName = somePerson.firstName;
// NSString *firstName = [somePerson firstName];
somePerson.firstName = @"Johnny";
// [somePerson setFirstName:@"Johnny"];

澶у鏁板睘鎬ф湁涓涓疄渚嬪彉閲忋?/span>
緙虹渷鐨勮鍐欏睘鎬т細鐢辯紪璇戝櫒鑷姩鐢熸垚涓涓疄渚嬪彉閲忥紝浠ヤ笅鍒掔嚎寮濮嬶紝濡俖firstName;
-(void) someMethod{
  NSString *myString = @"An interesting string";
  _someString = myString;
  
// self.someString = myString;
  
// or
  
// [self setSomeString:myString];
}

鍙互鎸囧畾瀹炰緥鍙橀噺鐨勫悕瀛?/span>
@implementation YourClass
@synthesize propertyName = instanceVariableName;
@end
// ---- for example

@synthesize firstName = ivar_firstName;

濡傛灉浣犱笉鎸囧畾鍚嶅瓧錛屽疄渚嬪彉閲忓垯鍜屽睘鎬у悓鍚嶏紝鍓嶉潰娌℃湁涓嬪垝綰?/span>
@synthesize firstName;

濡傛灉浣犲茍涓嶆兂鎻愪緵鏁板肩粰鍏跺畠瀵硅薄錛屼綘涓嶅繀澹版槑涓涓睘鎬ц屼嬌鐢ㄤ竴涓疄渚嬪彉閲?/span>
@interface SomeClass: NSObject{
  NSString *_myNonPropertyInstanceVariable;
}
@end

@implementation SomeClass{
  NSString *_anotherCustomInstanceVariable;
}

鍦ㄥ垵濮嬪寲鏂規硶閲岃闂疄渚嬪彉閲?/span>
Setter鏂規硶浼氭湁闄勫姞鏁堟灉銆傚畠浠彲鑳借Е鍙慘VC閫氱煡錛屾垨鑰呭畬鎴愪綘瀹氬埗鐨勬柟娉曘?/span>
浣犲簲璇ュ湪鍒濆鍖栨柟娉曢噷鐩存帴璁塊棶瀹炰緥鍙橀噺錛屽洜涓哄璞¤繕娌℃湁鍒濆鍖栧畬鎴愩傜敋鑷充綘涓嶅簲璇ユ彁渚涘畾鍒剁殑璁塊棶鍣ㄦ柟娉曠粰浣犵殑綾繪彁渚涢檮鍔犳晥鏋溿傝繖鏍峰皢鏉ョ殑瀛愮被鍙互寰堝ソ鐨刼verride榪欎釜琛屼負銆?/span>
涓涓吀鍨嬬殑init鏂規硶濡備笅
-(id)init{
  self = [super init];
  
if(self){
    
// initialize instance variables here
  }
  
return self;
}

鍙互鎸囧畾鍒濆鍖栨柟娉?/span>
-(id)initWithFirstName:(NSString *)aFirstName lastName:(NSString *)aLastName{
  self = [super init];
  
if(self){
    _firstName = aFirstName;
    _lastName = aLastName;
  }
  
return self;
}

鍙互鎸囧畾璁塊棶鏂規硶
@property (readonly) NSString *fullName;
// -------------
-(NSString *)fullName{
 
return [NSString stringWithFormat:@"%@ %@", self.firstName, self.lastName];
}

濡傛灉浣犻渶瑕佸湪璁塊棶鍣ㄩ噷璁塊棶瀹炰緥鍙橀噺錛岄偅搴旇鐩存帴璁塊棶銆備緥瀛愰噷寤惰繜鍒濆鍖栦竴涓璞★紝lazy accessor銆?/span>
- (XYZObject *)someImportantObject {
  
if(!_someImportantObject){
    _someImportantObject = [[XYZObject alloc] init];
  }
  
return _someImportantObject;
}

緙栬瘧鍣ㄤ細鑷姩synthesize涓涓疄渚嬪彉閲忋傝嚦灝戜竴涓闂柟娉曘傚鏋滀綘涓簉eadwrite灞炴у疄鐜頒簡getter鍜宻etter錛屾垨鑰呬負readonly瀹炵幇浜唃etter銆傜紪璇戝櫒璁や負浣犳兂鎺у埗灞炴у疄鐜幫紝涔熶笉浼氬啀涓轟綘鑷姩鐢熸垚涓涓疄渚嬪彉閲忋傚洜姝わ紝濡傛灉浣犱粛鐒墮渶瑕佷竴涓疄渚嬪彉閲忥紝浣犻渶瑕佹墜鍔╯ynthesize
@synthesize property = _property;

灞炴х己鐪佹槸鍘熷瓙鎬х殑銆俛tomic
@interface XYZObject : NSObject
@property NSObject *implicitAtomObject;                  // 緙虹渷鏄痑tomic
@property (atomic) NSObject *explicitAtomicObject;       // 鎸囨槑atomic
@end
緙虹渷璁塊棶鍣ㄥ凡緇忚В鍐充簡澶氱嚎紼嬪茍鍙戠殑闂銆?/span>

濡傛灉浣犲畾鍒朵簡涓涓猘tomic, readwrite鐨勫睘鎬х殑setter錛岃岃緙栬瘧鍣ㄨ嚜鍔ㄧ敓鎴恎etter錛屽皢浼氬緱鍒頒竴涓紪璇戞椂璀﹀憡銆?/span>

浣犲彲浠ュ0鏄巒onatomic灞炴э紝鍥犱負涓嶉渶瑕乬uarantee錛屽鐞嗗茍鍙戯紝鍥犳瀹冪殑璁塊棶鍣ㄦ瘮atomic灞炴ф洿蹇?/span>

灞炴х殑鍘熷瓙鎬у茍涓嶆剰鍛崇潃瀵硅薄鏄嚎紼嬪畨鍏ㄧ殑銆備緥濡俧irstName鍜孡astName銆?/span>

綆$悊瀵硅薄鐨勭敓鍛藉懆鏈燂紝瀵硅薄鏄氳繃鎸囬拡鏉ヨ闂紝鍐呭瓨鏄姩鎬佺敵璇風殑錛屾寚閽堝彉閲忕殑鐢熷懡鍛ㄦ湡涓嶄唬琛ㄥ璞$殑璇佹槑鍛ㄦ湡銆俿trong reference鎰忓懗鐫瀵硅薄鍜屽彟涓涓璞$殑鐢熷懡鍛ㄦ湡涓鏍烽暱銆?/span>
灞炴х己鐪佹槸寮哄紩鐢紝鍙互鎸囧畾weak銆傛湰鍦板彉閲忛兘鏄己寮曠敤錛屽鏋滀綘涓嶅笇鏈涚淮鎶や竴涓己寮曠敤錛屽彲浠ヤ嬌鐢╛_weak
@property (weak) id delegate;
// ---------
NSObject * __weak weakVariable;

寮卞紩鐢ㄤ細甯︽潵涓嶅畨鍏ㄧ殑琛屼負錛屽洜涓哄彉閲忓彲鑳戒細琚疆涓簄il銆?/span>
涓浜汣ocoa綾諱笉鑳藉0鏄庝負寮卞紩鐢紝鍖呮嫭NSTextView, NSFont, NSColorSpace絳夛紝濡傛灉浣犻渶瑕佷嬌鐢ㄨ繖浜涚被鐨勪竴涓急寮曠敤錛屼綘闇瑕佷竴涓猽nsafe_unretained澹版槑銆?/span>
@property (unsafe_unretained) NSObject *unsafePropery;
// ------------
NSObject * __unsafe_unretained unsafeReference;
unsafe寮曠敤綾諱技weak寮曠敤錛屼絾褰撳璞¢噴鏀炬椂錛屽畠涓嶄細琚疆涓簄il錛屽洜姝や綘鍙兘浼氭寔鏈変竴涓偓鎸傛寚閽堬紝鎸囧悜涓涓湭鐭ュ唴瀛橈紝鍚戝畠鍙戞秷鎭彲鑳戒細瀵艱嚧宕╂簝銆?/span>

copy灞炴?/span>
@interface XYZBadgeView : NSView
@property NSString *firstName;
@peoperty NSString *lastName;
@end

濡傛灉浣犺繖鏍峰仛
NSMutableString *nameString = [NSMutableString stringWithString:@"John"];
self.badgeView.firstName = nameString;
// ----
[nameString appendString:@"ny"];
榪欐牱firstName灝嗘寚鍚戜竴涓狽SMutableString錛屽畠鐨勫煎彲浠ユ敼鍙樹簡錛屼綘鍙互澧炲姞copy澹版槑錛岄伩鍏嶈繖縐嶆儏鍐?/span>

@interface XYZbadgeView : NSView
@property (copy) NSString *firstName;
@property (copy) NSString *lastName;
@end
// --------------------
NSMutableString *nameString = [NSMutableString stringWithString:@"John"];
self.badgeView.firstName = nameString;
// ----
[nameString appendString:@"ny"];
榪欐牱firstName浠嶇劧鏄?#8220;John”錛屼笉浼氬彂鐢熷彉鍖?/span>

涓涓澹版槑涓篶opy鐨勫璞?/span>蹇呴』鏀寔NSCopying鍗忚銆傚鏋滀綘瑕佺洿鎺et涓涓猚opy灞炴х殑瀹炰緥鍙橀噺錛屼緥濡傚湪鍒濆鍖栨柟娉曢噷錛屼竴瀹氳璁劇疆鍘熷瀵硅薄鐨刢opy
-(id)initWithSomeOriginalString:(NSString *)aString{
  self = [super init];
  
if(self){
     _instanceVariableForCopyProperty = [aString copy];
  }
  
return self;
}




cuigang 2013-11-20 16:49 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 2 - working with Objectshttp://www.shnenglu.com/cuigang/archive/2013/11/19/204339.htmlcuigangcuigangTue, 19 Nov 2013 15:11:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/19/204339.htmlhttp://www.shnenglu.com/cuigang/comments/204339.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/19/204339.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204339.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204339.html鐢∣BJC緙栫▼ 2 - working with Objects
鍙戦佸拰鎺ユ敹娑堟伅
@interface XYZPerson : NSObject
-(void) sayHello;
@end

// implemetation
@implementation XYZPerson
- (void) sayHello{
    NSLog(@"Hello, world!");
}
@end // XYZPerson

// -----
[somePerson sayHello];

閫氳繃鎸囬拡keep瀵硅薄

-(void)myMethod{
  NSString *myString = // get a string from somewhere.
}

閫氳繃鍙傛暟浼犻掑璞?/span>
-(void)saySomething:(NSString *)greeting;
// implementation
-(void)saySomething:(NSString *)greeting{
    NSLog(@"%@", greeting);   // "%@",鐢ㄦ潵鎵撳嵃瀵硅薄
}

閫氳繃榪斿洖鍊間紶閫?/span>
-(NSString *)magicString;
//implementation
-(NSString *)magicString{
    NSString *stringToReturn = // create string
    return stringToReturn;
}
// use it
NSString *magic = [testString magicString];

鍚戣嚜宸卞彂閫佹秷鎭?/span>
@implementation XYZPerson
-(void)sayHello{
  [self saySomething:@"Hello, world!"];
}
-(void)saySomething:(NSString *)greeting{
  NSLog(@"%@", greeting);
}
@end

鍚戠埗綾誨彂娑堟伅
@interface XYZShoutingPerson : XYZPerson
@end
/////////////////////
@implementation XYZShoutingPerson
-(void)saySomething:(NSString *)greeting{
  NSString *uppercaseGreeting = [greeting uppercaseString];
  [super saySomething:uppercaseGreeting];
}
@end

鍔ㄦ佸垱寤哄璞?/span>
// NSObject鎻愪緵涓涓被鏂規硶, id like (NSObject *)
+(id)alloc;
// 
-(id)init;
//=============== use it
NSObject *newObject = [[NSObject alloc] init];

// init鍙兘榪斿洖涓涓拰alloc涓嶅悓鐨勫璞★紝鍥犳鏈濂藉祵濂椾嬌鐢╝lloc鍜宨nit錛屼笉鎺ㄨ崘濡備笅浣跨敤
NSObjet *someObject = [NSObject alloc];
[someObject init];

鍒濆鍖栨柟娉曞彲浠ュ甫鍙傛暟
-(id)initWithInt:(int)value;
-(id)initWithLong:(long)value;
//------------------
NSNumber *magicNumber = [[NSNumber alloc] initWithInt:42];

綾誨伐鍘傛柟娉曟彁渚涗簡鍙︿竴涓夋嫨
+(NSNumber *)numberWithInt:(int)value;
+(NSNumber *)numberWithLong:(long)value;
//------------------
NSNumber *magicNumber = [NSNumber numberWithInt:42];

浣跨敤new鏉ヤ唬鏇?/span>
XYZObject *object = [XYZObject new];
// is effectively the same as:
XYZObject *object = [[XYZObject alloc] init];

閫氳繃瀛楅潰閲忓垱寤?/span>
NSString *someString = @"Hello, world!";
// is same as
NSString *someString = [NSString stringWithCString:"Hello, world!" encoding:NSUTF8StringEncoding];

//=======
NSNumber *myBOOL = @YES;
NSNumber *myFloat = @3.14f;
NSNumber *myInt = @42;
NSNumber *myLong = @42L;
NSNumber *myInt2 = @(84 / 2);

OBJC 鏄竴涓姩鎬佽璦
// 涓嬮潰浠g爜浼氫駭鐢熻繍琛屾椂閿欒錛屽洜涓篘SString娌℃湁removeAllObjects鏂規硶
id someObject = @"Hello, World!";
[someObject removeAllObjects];

// 涓嬮潰浠g爜浼氫駭鐢熺紪璇戞椂閿欒
NSString *someObject = @"Hello, World!";
[someObject removeAllObjects];

姣旇緝瀵硅薄
// 鍥犱負鏄寚閽堬紝鎵浠ュ彲浠ヨ繖鏍鋒瘮杈冩槸鍚﹀悓涓涓璞?/span>
if(firstPerson == secondPerson){
  
// the same object
}
// 濡傛灉瑕佹瘮杈冩暟鎹槸鍚︾浉鍚岋紝浣跨敤isEqual
if([firstPerson isEqual:secondPerson]) {
  
// is identical to second
}

浣跨敤nil
// nil 鏄竴涓璞℃寚閽堬紝澹版槑涓涓璞℃寚閽堟棤闇鍒濆鍖栵紝緙栬瘧鍣ㄤ細鍒濆鍖栧畠涓簄il
XYZPerson *somePerson;
// ------------
if(somePerson != nil){
  
// ====
}
// or 
if(somePerson){
   
// ===
}


cuigang 2013-11-19 23:11 鍙戣〃璇勮
]]>
鐢∣BJC緙栫▼ 0-綆浠?& .1 瀹氫箟綾?/title><link>http://www.shnenglu.com/cuigang/archive/2013/11/19/204145.html</link><dc:creator>cuigang</dc:creator><author>cuigang</author><pubDate>Tue, 19 Nov 2013 10:34:00 GMT</pubDate><guid>http://www.shnenglu.com/cuigang/archive/2013/11/19/204145.html</guid><wfw:comment>http://www.shnenglu.com/cuigang/comments/204145.html</wfw:comment><comments>http://www.shnenglu.com/cuigang/archive/2013/11/19/204145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/cuigang/comments/commentRss/204145.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cuigang/services/trackbacks/204145.html</trackback:ping><description><![CDATA[<div><strong style="font-size: 10pt; font-family: Courier;"><span style="font-family: Courier; font-size: 10pt;"><Programming with Objective-C>-0-Introduction</span></strong></div><br /><span style="font-family: Courier; font-size: 10pt;">OBJC鏄疧SX鍜孖OS鐨勪富瑕佺紪紼嬭璦錛屽畠鏄疌鐨勮秴闆嗭紝鎻愪緵浜嗛潰鍚戝璞$殑鐗規у拰鍔ㄦ佽繍琛屾椂綾誨瀷淇℃伅銆侽BJC緇ф壙浜咰鐨勮娉曪紝鍩烘湰鏁版嵁綾誨瀷鍜屾祦紼嬫帶鍒訛紝闄勫姞浜嗗畾涔夌被鍜屾柟娉曠殑璇硶銆備篃涓哄姩鎬佺被鍨嬬粦瀹氭彁渚涗簡璇█綰у埆鐨勬敮鎸併?/span><br /><br /><div><span style="font-family: Courier; font-size: 10pt;"><strong><Programming with Objective-C>-1-Defining Classes</strong></span><span style="font-family: Courier; font-size: 14pt;"><br /></span><br /><span style="font-family: Courier; font-size: 10pt;">鍙彉鎬у喅瀹氬兼槸鍚﹀彲浠ユ洿鏀?br /></span><blockquote><span style="font-family: Courier; font-size: 10pt;">涓浜涚被瀹氫箟瀵硅薄鏄痠mmutable鐨勶紝鎰忓懗鐫瀵硅薄鐨勫唴瀹逛笉鍙鍏跺畠瀵硅薄鏀瑰彉銆侼SString鍜孨SNumber鏄痠mmutable鐨?/span><br /><br /><span style="font-family: Courier; font-size: 10pt;">涓浜沬mmutable綾婚〉娓竚utable鐗堟湰銆傛瘮濡侼SString鐨凬SMutableString銆?/span><br /><br /><span style="font-family: Courier; font-size: 10pt;">灝界NSString鍜孨SMutableString鏄笉鍚岀殑綾伙紝瀹冧滑鏈夐潪甯稿鐨勭浉浼間箣澶?/span><br /></blockquote><br /><span style="font-family: Courier; font-size: 10pt;">浠庡彟涓涓被緇ф壙</span><br /><blockquote><span style="font-family: Courier; font-size: 10pt;">浠庡彟涓涓被緇ф壙錛屽瓙綾葷戶鎵夸簡鐖剁被鎵鏈夌殑琛屼負鍜屽睘鎬с備篃鍙互瀹氫箟鑷繁鐨刡ehavior鍜宲roperties錛屾垨鑰卭verride鐖剁被鐨刡ehavior</span><br /><br /><span style="font-family: Courier; font-size: 10pt;">NSMutableString緇ф壙浜嶯SString錛屽洜姝ゆ嫢鏈夋墍鏈塏SString鐨勫姛鑳斤紝涔熷鍔犱簡append錛宨nsert錛宺eplace錛宒elete substring絳夋柟娉?/span><br /></blockquote><span style="font-family: Courier; font-size: 12pt;"><br /></span><span style="font-family: Courier; font-size: 10pt;">鏍圭被鎻愪緵鍩烘湰鍔熻兘</span><br /><blockquote><span style="font-family: Courier; font-size: 10pt;">濡傛灉浣犲畾涔変竴涓嚜宸辯殑綾伙紝搴旇鑷沖皯緇ф壙浜嶯SObject</span><br /></blockquote><strong style="font-size: 12pt;"><br /></strong><strong style="font-size: 10pt; font-family: Courier;">綾葷殑鎺ュ彛瀹氫箟</strong><br style="font-size: 10pt; font-family: Courier;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鍩烘湰璇硶</span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; font-family: Courier;">1</span> <span style="color: #000000; font-family: Courier;">@interface SimpleClass : NSObject<br /></span><span style="color: #008080; font-family: Courier;">2</span> <span style="color: #000000; "><br /></span><span style="color: #008080; font-family: Courier;">3</span> <span style="color: #000000; font-family: Courier;">@end</span><span style="color: #000000; "><br /></span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">Properties鎺у埗璁塊棶涓涓璞$殑鍊?/span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">@interface Person : NSObject<br /><br />@property NSString </span><span style="color: #000000; ">*</span><span style="color: #000000; ">firstName; </span><span style="color: #008000; ">//</span><span style="color: #008000; "> 瀵硅薄鐢ㄦ寚閽?/span><span style="color: #008000; "><br /></span><span style="color: #000000; ">@property NSString </span><span style="color: #000000; ">*</span><span style="color: #000000; ">lastName;<br />@property NSNumber </span><span style="color: #000000; ">*</span><span style="color: #000000; ">yearOfBirth;<br />@property </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> yearOfBirth_1; </span><span style="color: #008000; ">//</span><span style="color: #008000; "> 鐢ㄥ熀鏈被鍨?/span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />@end</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">Property灞炴ф寚鏄庢暟鎹殑鍙闂у拰瀛樺偍鎯呭喌</span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">@interface Person : NSObject<br />@property (</span><span style="color: #0000FF; ">readonly</span><span style="color: #000000; ">) NSString</span><span style="color: #000000; ">*</span><span style="color: #000000; "> firstName;<br />@property (</span><span style="color: #0000FF; ">readonly</span><span style="color: #000000; ">) NSString</span><span style="color: #000000; ">*</span><span style="color: #000000; "> lastName;<br />@end</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鏂規硶瀹氫箟</span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; font-family: Courier;">-</span><span style="color: #000000; font-family: Courier;">(</span><span style="color: #0000ff; font-family: Courier;">void</span><span style="color: #000000; font-family: Courier;">)someMethod;</span></div><span style="font-family: Courier; font-size: 10pt;">鍓嶉潰鐨?- 鍙瘋〃紺鴻繖鏄竴涓疄渚嬫柟娉?/span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鏂規硶鍙互甯﹀弬鏁?/span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; font-family: Courier;">-</span><span style="color: #000000; font-family: Courier;">(</span><span style="color: #0000ff; font-family: Courier;">void</span><span style="color: #000000; font-family: Courier;">)someMethodWithValue:(SomeType)value;</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鍙互鏈夊涓弬鏁?/span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; font-family: Courier;">-</span><span style="color: #000000; font-family: Courier;">(</span><span style="color: #0000ff; font-family: Courier;">void</span><span style="color: #000000; font-family: Courier;">)someMethodWithFirstValue:(SomeType)value1 secondValue:(AnotherType)value2;</span></div><span style="font-family: Courier; font-size: 10pt;">secondValue 鏄浜屼釜鍙傛暟絳懼悕鐨勪竴閮ㄥ垎</span><span style="font-family: Courier; font-size: 10pt;">錛?/span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鍥犳錛屼笅闈㈢殑鍑芥暟絳懼悕涓嶅悓錛?/span><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; font-family: Courier;">-</span><span style="color: #000000; font-family: Courier;">(</span><span style="color: #0000ff; font-family: Courier;">void</span><span style="color: #000000; font-family: Courier;">)someMethodWithFirstValue:(SomeType)info1 anotherValue:(AnotherType)info2;<br /></span><span style="color: #000000; font-family: Courier;">-</span><span style="color: #000000; font-family: Courier;">(</span><span style="color: #0000ff; font-family: Courier;">void</span><span style="color: #000000; font-family: Courier;">)someMethodWithFirstValue:(SomeType)info1 secondValue:(YetAnotherType)onfo2;</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">綾誨悕縐板繀欏誨敮涓</span><br style="font-family: Courier; font-size: 10pt;" /><blockquote style="font-family: Courier; font-size: 10pt;">綾誨悕蹇呴』鍞竴錛岀敋鑷沖拰搴撴垨鑰呮鏋墮噷鐨勭被涔熶笉鑳介噸鍚嶏紝寤鴻浣跨敤涓変釜瀛楃鐨勫墠緙銆?br />涓や釜瀛楁瘝鍓嶇紑錛屽NS錛孶I錛屽凡緇忚Apple淇濈暀<br /></blockquote><strong style="font-family: Courier; font-size: 10pt;"><br /></strong><strong style="font-size: 10pt; font-family: Courier;">綾葷殑瀹炵幇</strong><br style="font-size: 10pt; font-family: Courier;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鍩烘湰璇硶</span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#import </span><span style="color: #000000; ">"</span><span style="color: #000000; ">XYZPerson.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /><br />@implementation XYZPerson<br /><br />@end</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">瀹炵幇鏂規硶</span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; "> interface like this</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">@interface XYZPerson : NSObject<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">)sayHello;<br />@end<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; "> implementation like this</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />@implementation XYZPerson<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">)sayHello{<br />   NSLog(</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">Hello, World!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />}<br />@end</span></div><br style="font-family: Courier; font-size: 10pt;" /><strong style="font-family: Courier; font-size: 10pt;"><span style="font-size: 12pt; font-family: Courier;">綾諱篃鏄竴涓璞?/span></strong><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">鍦∣BJC閲岋紝綾昏嚜宸變篃鏄竴涓狢lass綾誨瀷鐨勫璞°傜被綾誨瀷涓嶈兘閫氳繃澹版槑鐨勮娉曞畾涔塸roperty錛屼絾鏄畠鍙互鎺ユ敹娑堟伅銆?/span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">綾葷被鍨嬬殑鏂規硶鐨勫吀鍨嬬敤閫旀槸宸ュ巶鏂規硶錛岀敤鏉ヨ繘琛屽璞$殑鍒嗛厤鍜屽垵濮嬪寲錛屽NSString鐨?/span><span style="font-family: Courier; font-size: 10pt;">宸ュ巶鏂規硶</span><br style="font-family: Courier; font-size: 10pt;" /><br style="font-family: Courier; font-size: 10pt;" /><div style="background-color: #eeeeee; font-size: 10pt; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; font-family: Courier;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; font-family: Courier; font-size: 10pt;">+</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">(id)</span><span style="color: #0000ff; font-family: Courier; font-size: 10pt;">string</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">;<br /></span><span style="color: #000000; font-family: Courier; font-size: 10pt;">+</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">(id)stringWithString:(NSString </span><span style="color: #000000; font-family: Courier; font-size: 10pt;">*</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">)aString;<br /></span><span style="color: #000000; font-family: Courier; font-size: 10pt;">+</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">(id)stringWithFormat:(NSString </span><span style="color: #000000; font-family: Courier; font-size: 10pt;">*</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">)format,.. . </span><span style="color: #000000; font-family: Courier; font-size: 10pt;">;<br /></span><span style="color: #000000; font-family: Courier; font-size: 10pt;">+</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">(id)stringWithContentsOfFile:(NSString </span><span style="color: #000000; font-family: Courier; font-size: 10pt;">*</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">)path encoding:(NSStringEncoding)end error:(NSError </span><span style="color: #000000; font-family: Courier; font-size: 10pt;">**</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">)error;<br /></span><span style="color: #000000; font-family: Courier; font-size: 10pt;">+</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">(id)stringWithCString:(</span><span style="color: #0000ff; font-family: Courier; font-size: 10pt;">const</span><span style="color: #000000; "> </span><span style="color: #0000ff; font-family: Courier; font-size: 10pt;">char</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">*</span><span style="color: #000000; font-family: Courier; font-size: 10pt;">)cString encoding:(NSStringEncoding)enc;</span></div><br style="font-family: Courier; font-size: 10pt;" /><span style="font-family: Courier; font-size: 10pt;">+ 鍙瘋〃紺鴻繖鏄竴涓被鐨勬柟娉?/span></div><img src ="http://www.shnenglu.com/cuigang/aggbug/204145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cuigang/" target="_blank">cuigang</a> 2013-11-19 18:34 <a href="http://www.shnenglu.com/cuigang/archive/2013/11/19/204145.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>UTF8 to Unicodehttp://www.shnenglu.com/cuigang/archive/2013/11/17/204284.htmlcuigangcuigangSun, 17 Nov 2013 02:31:00 GMThttp://www.shnenglu.com/cuigang/archive/2013/11/17/204284.htmlhttp://www.shnenglu.com/cuigang/comments/204284.htmlhttp://www.shnenglu.com/cuigang/archive/2013/11/17/204284.html#Feedback0http://www.shnenglu.com/cuigang/comments/commentRss/204284.htmlhttp://www.shnenglu.com/cuigang/services/trackbacks/204284.html1 //unicode      bin                           utf8
2 0x0000~0x007f  0xxxxxxx                    0x00~0x7f
3 0x0080~0x07ff  110xxxxx 10xxxxxx           0xCx 0x8x ~ 0xDx 0xBx
4 0x0800~0xffff  1110xxxx 10xxxxxx 10xxxxxx  0xEx 0x8x 0x8x ~ 0xEx Bx Bx


cuigang 2013-11-17 10:31 鍙戣〃璇勮
]]>
久久婷婷人人澡人人| 久久亚洲精品中文字幕| 日产久久强奸免费的看| 国产精品亚洲综合久久| 国产精品久久久久久福利69堂| 国产午夜精品久久久久九九电影| 欧美久久久久久| 国产精品久久久久AV福利动漫| 久久精品国产精品亚洲艾草网美妙| 久久久国产亚洲精品| 一本大道久久a久久精品综合 | 国产成人精品综合久久久久 | 国内精品伊人久久久久AV影院| 精品久久久久久国产免费了| 狠狠色婷婷久久一区二区 | 国内精品伊人久久久影院| 成人久久精品一区二区三区| 亚洲?V乱码久久精品蜜桃| 久久99国产精一区二区三区| 久久精品国产亚洲AV久| 久久久久久久久久免免费精品| 久久99精品久久久久婷婷| 久久人人爽人人爽人人片AV麻烦| 青青青青久久精品国产h| 久久精品国产亚洲AV嫖农村妇女| 一本久久a久久精品综合香蕉| 狠狠精品干练久久久无码中文字幕| 久久精品国产亚洲AV无码偷窥| 亚洲狠狠婷婷综合久久蜜芽| 久久一本综合| 久久久久99精品成人片三人毛片| 国产精品岛国久久久久| 久久精品无码一区二区无码| 色妞色综合久久夜夜 | 99久久免费只有精品国产| 精品久久人妻av中文字幕| 久久亚洲日韩精品一区二区三区| 亚洲αv久久久噜噜噜噜噜| 亚洲精品无码久久久久去q| 伊人久久综合成人网| 综合网日日天干夜夜久久|