<歡迎大家加入iOS開發學習交流群:QQ529560119>
iOS8最新API和一些生僻API,做了紅色标注,便于大家查閱。
//0.定義一個無符号整型 兩個位元組 範圍[0,65535]
typedef unsigned short unichar;
//1.提前進入以下六個類告訴編譯器,六個都是類的名稱
@class NSData,NSArray,NSDictionary,NSCharacterSet,NSURL,NSError,NSLocale;
//2.異常處理字元串,控制台出錯資訊報告
FOUNDATION_EXPORTNSString *const NSParseErrorException;
//3.宏定義下字元串的最大值
#define NSMaximumStringLength (INT_MAX-1)
//4.字元串進行比較options
typedefNS_OPTIONS(NSUInteger, NSStringCompareOptions) {
NSCaseInsensitiveSearch =1,//兩個字元串的比較不區分大小寫
NSLiteralSearch = 2,//兩個字元串的比較區分大小寫
NSBackwardsSearch =4,//從字元串末尾開發查詢搜尋
NSAnchoredSearch =8,//搜尋有限制範圍的字元串
NSNumericSearch = 64,//根據字元串裡的數字來計算順序
NSDiacriticInsensitiveSearchNS_ENUM_AVAILABLE(10_5,2_0) =128,
NSWidthInsensitiveSearch NS_ENUM_AVAILABLE(10_5,2_0) =256,//可以忽略字元串的寬度(長度)比較結果
NSForcedOrderingSearchNS_ENUM_AVAILABLE(10_5,2_0) =512,//忽略不區分大小寫比較的選項
NSRegularExpressionSearchNS_ENUM_AVAILABLE(10_7,3_2) =1024 //
};
//5.字元串編碼的多種選項
enum {
NSASCIIStringEncoding =1,
NSNEXTSTEPStringEncoding =2,
NSJapaneseEUCStringEncoding =3,
NSUTF8StringEncoding =4,
NSISOLatin1StringEncoding =5,
NSSymbolStringEncoding =6,
NSNonLossyASCIIStringEncoding =7,
NSShiftJISStringEncoding =8,
NSISOLatin2StringEncoding =9,
NSUnicodeStringEncoding =10,
NSWindowsCP1251StringEncoding = 11,
NSWindowsCP1252StringEncoding =12,
NSWindowsCP1253StringEncoding =13,
NSWindowsCP1254StringEncoding =14,
NSWindowsCP1250StringEncoding =15,
NSISO2022JPStringEncoding = 21,
NSMacOSRomanStringEncoding =30,
NSUTF16StringEncoding = NSUnicodeStringEncoding,
NSUTF16BigEndianStringEncoding = 0x90000100,
NSUTF16LittleEndianStringEncoding = 0x94000100,
NSUTF32StringEncoding =0x8c000100,
NSUTF32BigEndianStringEncoding = 0x98000100,
NSUTF32LittleEndianStringEncoding = 0x9c000100
};
//6.字元串編碼
typedefNSUInteger NSStringEncoding;
字元串編碼轉換條件option,下面指定緩沖區轉換會用到
typedefNS_OPTIONS(NSUInteger, NSStringEncodingConversionOptions) {
NSStringEncodingConversionAllowLossy =1,
NSStringEncodingConversionExternalRepresentation =2
};
//7.字元轉化異常
FOUNDATION_EXPORTNSString *const NSCharacterConversionException;
//8. NSString繼承NSObject,并遵守以下三個協定
@interface NSString :NSObject <NSCopying,NSMutableCopying,NSSecureCoding>
//9.隻讀屬性字元串長度length
@property (readonly)NSUInteger length;
//10.選取字元串對應下表的字元
- -(unichar)characterAtIndex:(NSUInteger)index;
//11.字元串的init初始化方法
- -(instancetype)initNS_DESIGNATED_INITIALIZER;
//12.當一個xib的控件被加載執行個體化的時候,系統會預設調用這個方法。
- (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;
@end
//13.NSString的擴充方法
@interface NSString (NSStringExtensionMethods)
//14.截取字元串的指定段
- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange;
//15.截取指定位置Index之後字元串
- (NSString *)substringFromIndex:(NSUInteger)from;
//16.從索引0第一個字元串開始,截取指定長度的字元串
- (NSString *)substringToIndex:(NSUInteger)to;
//17.截取字元串的指定段,傳回值為NSString
- (NSString *)substringWithRange:(NSRange)range;
//18.比較兩個字元串
- (NSComparisonResult)compare:(NSString *)string;
//19.比較兩個字元串,并加上條件
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;
//20.比較兩個字元串,并加上某些條件到指定段
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange;
//21.比較兩個字元串,并加上某些條件還有本地化語言環境,在指定段進行比較
- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange locale:(id)locale;
//22.不區分大小寫比較字元串
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;
//23.本地化比較字元串
- (NSComparisonResult)localizedCompare:(NSString *)string;
//24.不區分大小寫以及本地化比較字元串
- (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)string;
//25.本地化标準字元串比較,傳回升序降序相等
- (NSComparisonResult)localizedStandardCompare:(NSString *)stringNS_AVAILABLE(10_6,4_0);
//26.比較兩個字元串是否相等
- (BOOL)isEqualToString:(NSString *)aString;
//27.測試字元串是否以aString開頭
- (BOOL)hasPrefix:(NSString *)aString;
//28.測試字元串是否以aString結尾
- (BOOL)hasSuffix:(NSString *)aString;
//29.判斷字元串A是否包含aString字元串B,傳回值Bool
- (BOOL)containsString:(NSString *)aStringNS_AVAILABLE(10_10,8_0);
//30.這是iOS8的新特性API 判斷字元串A是否包含字元串B,不區分大小寫,傳回Bool
例:NSSsring * stringA = @“abcd”;
NSSsring * stringB = @“d”;
BOOl test = [stringA localizedCaseInsensitiveContainsString:stringB];
輸出列印值 YES
- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)aString NS_AVAILABLE(10_10, 8_0);
//31.搜尋一個字元串是否包含某個字元 rangeOfString前面的參數是要被搜尋的字元串,後面的是要搜尋的字元
- (NSRange)rangeOfString:(NSString *)aString;
//32.搜尋一個字元串是否包含某個字元,并添加篩選條件option
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;
//33搜尋一個字元串是否包含某個字元,添加篩選條件以及搜尋的範圍range
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
//34.搜尋一個字元串是否包含某個字元,添加篩選條件以及搜尋的範圍range,最後還有本地化的設定
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)localeNS_AVAILABLE(10_5,2_0);
//35.指定字元集進行搜尋
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet;
//36.指定字元集進行搜尋,并且加上某些限制條件
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet options:(NSStringCompareOptions)mask;
//37.指定字元集進行搜尋,并且加上某些限制條件,且在指定的位置段進行
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
//38.用字元串的字元編碼指定索引查找位置
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
//39.用字元串的字元編碼指定區域段查找位置
- (NSRange)rangeOfComposedCharacterSequencesForRange:(NSRange)rangeNS_AVAILABLE(10_5,2_0);
//40.将aString字元串添加到前面字元串A的後面
- (NSString *)stringByAppendingString:(NSString *)aString;
//41.将多個字元串添加到前面字元串A的後面
- (NSString *)stringByAppendingFormat:(NSString *)format, ...NS_FORMAT_FUNCTION(1,2);
//42.隻讀屬性 double類型
@property (readonly)double doubleValue;
//43.隻讀屬性 float類型
@property (readonly)float floatValue;
//44.隻讀屬性int類型
@property (readonly)int intValue;
//45.隻讀屬性NSInteger類型
@property (readonly)NSInteger integerValueNS_AVAILABLE(10_5,2_0);
// 46.隻讀屬性long long 類型
@property (readonly)longlong longLongValueNS_AVAILABLE(10_5,2_0);
//47.隻讀屬性BOOL類型
@property (readonly)BOOL boolValueNS_AVAILABLE(10_5,2_0); //
//48.将字元串根據傳進來的字元串參數separator進行分割,并轉化成數組
- (NSArray *)componentsSeparatedByString:(NSString *)separator;
// 49. 将字元串根據傳進來的字元編碼separator進行分割,并拆分成數組傳回
- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separatorNS_AVAILABLE(10_5,2_0);
//50.
- (NSString *)commonPrefixWithString:(NSString *)aString options:(NSStringCompareOptions)mask;
//51. 将字元串的所有字元轉化成大寫
@property (readonly,copy)NSString *uppercaseString;
//52.将字元串的所有字元轉化為小寫
@property (readonly,copy)NSString *lowercaseString;
// 53. 所有單詞的首字母轉化成大寫
@property (readonly,copy)NSString *capitalizedString;
//54.所有字元轉化成大寫 本地化
- (NSString *)uppercaseStringWithLocale:(NSLocale *)localeNS_AVAILABLE(10_8,6_0);
//55.所有字元串轉化成小寫 本地化
- (NSString *)lowercaseStringWithLocale:(NSLocale *)localeNS_AVAILABLE(10_8,6_0);
//54.所有單詞首字母轉化成大寫 本地化
- (NSString *)capitalizedStringWithLocale:(NSLocale *)localeNS_AVAILABLE(10_8,6_0);
//55.删除字元串中包含字元集部分的字元 傳回字元串
擴充一下,如果想要删除字元串前後的空格或者回車,這樣做:
[stringA stringByTrimmingCharactersInSet: [NSCharacterSetWhitespaceAndNewLineCharacterSet]];
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;
//56.将字元串padString指定索引段添加到前面字元串後面
- (NSString *)stringByPaddingToLength:(NSUInteger)newLength withString:(NSString *)padString startingAtIndex:(NSUInteger)padIndex;
//57.指定段分行去字元串
- (void)getLineStart:(NSUInteger *)startPtr end:(NSUInteger *)lineEndPtr contentsEnd:(NSUInteger *)contentsEndPtr forRange:(NSRange)range;
//58.傳回字元串指定段位置和長度
- (NSRange)lineRangeForRange:(NSRange)range;
//59.給字元串指定段分段取字元串
- (void)getParagraphStart:(NSUInteger *)startPtr end:(NSUInteger *)parEndPtr contentsEnd:(NSUInteger *)contentsEndPtr forRange:(NSRange)range;
//60指定段分段的位置和長度
- (NSRange)paragraphRangeForRange:(NSRange)range;
//61.
typedefNS_OPTIONS(NSUInteger, NSStringEnumerationOptions) {
// Pass in one of the "By" options:
NSStringEnumerationByLines =0, // Equivalent to lineRangeForRange:
NSStringEnumerationByParagraphs =1, // Equivalent to paragraphRangeForRange:
NSStringEnumerationByComposedCharacterSequences =2, // Equivalent to rangeOfComposedCharacterSequencesForRange:
NSStringEnumerationByWords =3,
NSStringEnumerationBySentences =4,
// ...and combine any of the desired additional options:
NSStringEnumerationReverse =1UL <<8,
NSStringEnumerationSubstringNotRequired =1UL <<9,
NSStringEnumerationLocalized =1UL <<10 // User's default locale
};
//62.檢查是否在指定範圍内是否有比對的字元串
- (void)enumerateSubstringsInRange:(NSRange)range options:(NSStringEnumerationOptions)opts usingBlock:(void (^)(NSString *substring,NSRange substringRange,NSRange enclosingRange,BOOL *stop))blockNS_AVAILABLE(10_6,4_0);
//63.列舉枚舉字元串所有行
- (void)enumerateLinesUsingBlock:(void (^)(NSString *line,BOOL *stop))block NS_AVAILABLE(10_6,4_0);
//64.字元串
@property (readonly,copy)NSString *description;
//65.傳回字元串哈希位址
@property (readonly)NSUInteger hash;
//66.字元串最快編碼值
@property (readonly)NSStringEncoding fastestEncoding; //
//67.字元串最小編碼值
@property (readonly)NSStringEncoding smallestEncoding; //
//68.傳回指定編碼的NSData對象
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding allowLossyConversion:(BOOL)lossy; // External representation
//69.傳回指定編碼的NSData對象
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; // External representation
//70.判斷是否可以無損化轉碼
- (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding;
//71.char編碼轉化
- (__strongconstchar *)cStringUsingEncoding:(NSStringEncoding)encodingNS_RETURNS_INNER_POINTER;
//72.C字元串轉化是夠成功
- (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding;// NO return if conversion not
//73.指定緩存區轉換
- (BOOL)getBytes:(void *)buffer maxLength:(NSUInteger)maxBufferCount usedLength:(NSUInteger *)usedBufferCount encoding:(NSStringEncoding)encoding options:(NSStringEncodingConversionOptions)options range:(NSRange)range remainingRange:(NSRangePointer)leftover;
//74.字元串編碼時需要用的位元組長度
- (NSUInteger)maximumLengthOfBytesUsingEncoding:(NSStringEncoding)enc;
//75.字元串編碼時需要用到最大位元組長度
- (NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding)enc;
//76.unicode範式D标準化
@property (readonly,copy)NSString *decomposedStringWithCanonicalMapping;
//77.unicode範式c标準化
@property (readonly,copy)NSString *precomposedStringWithCanonicalMapping;
//78.unicode範式KD标準化
@property (readonly,copy)NSString *decomposedStringWithCompatibilityMapping;
//79.unicode範式KC标準化
@property (readonly,copy)NSString *precomposedStringWithCompatibilityMapping;
//80.本地化字元串折疊
- (NSString *)stringByFoldingWithOptions:(NSStringCompareOptions)options locale:(NSLocale *)locale NS_AVAILABLE(10_5,2_0);
//81.字元串的指定區域段被有條件的替換掉
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRangeNS_AVAILABLE(10_5,2_0);
//82.字元串的特定字元串被替換掉
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement NS_AVAILABLE(10_5,2_0);
//83.将字元串的指定區域段字元串被替換掉
- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement NS_AVAILABLE(10_5,2_0);
//84.将字元串轉化為char類型
@property (readonly)__strongconstchar *UTF8StringNS_RETURNS_INNER_POINTER;
//85.預設C字元串編碼
+ (NSStringEncoding)defaultCStringEncoding;
//86.可用的字元串編碼
+ (constNSStringEncoding *)availableStringEncodings;
//87.編碼的名稱vheng
+ (NSString *)localizedNameOfStringEncoding:(NSStringEncoding)encoding;
//88.指定緩沖區,編碼和位元組長度初始化NSString對象
- (instancetype)initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer;
//89.指定unichar字元,位元組長度初始化NSString對象
- (instancetype)initWithCharacters:(constunichar *)characters length:(NSUInteger)length;
//90.轉化為NSString對象
- (instancetype)initWithUTF8String:(constchar *)nullTerminatedCString;
//91.指定字元串初始化為NSString對象
- (instancetype)initWithString:(NSString *)aString;
//92.格式化多個字元串初始化NSString對象
- (instancetype)initWithFormat:(NSString *)format, ...NS_FORMAT_FUNCTION(1,2);
//93. 格式化字元串初始化NSString對象
- (instancetype)initWithFormat:(NSString *)format arguments:(va_list)argListNS_FORMAT_FUNCTION(1,0);
//94.本地化格式化多個字元串初始化NSString對象
- (instancetype)initWithFormat:(NSString *)format locale:(id)locale, ...NS_FORMAT_FUNCTION(1,3);
//95.本地化格式化字元串初始化NSString對象
- (instancetype)initWithFormat:(NSString *)format locale:(id)locale arguments:(va_list)argListNS_FORMAT_FUNCTION(1,0);
//96.指定編碼轉化NSData資料
- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding;
//97.指定編碼和位元組數初始化NSString對象
- (instancetype)initWithBytes:(constvoid *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding;
//98.指定緩沖區,編碼和位元組數初始化NSString對象
- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)freeBuffer;
//99.初始化空字元串
+ (instancetype)string;
//100.初始化NSString字元串
+ (instancetype)stringWithString:(NSString *)string;
//101.傳回指定長度unichar的C字元串
+ (instancetype)stringWithCharacters:(constunichar *)characters length:(NSUInteger)length;
//102.轉化C字元串為UTF8串
+ (instancetype)stringWithUTF8String:(constchar *)nullTerminatedCString;
//103.初始化NSString對象昂,這種建立方式會自動釋放記憶體,很常用的一種方式
+ (instancetype)stringWithFormat:(NSString *)format, ...NS_FORMAT_FUNCTION(1,2);
//104.初始化NSString自動釋放記憶體,本地化
+ (instancetype)localizedStringWithFormat:(NSString *)format, ...NS_FORMAT_FUNCTION(1,2);
//105.初始化C字元串并且指定編碼,在這裡需要手動釋放記憶體(init)
- (instancetype)initWithCString:(constchar *)nullTerminatedCString encoding:(NSStringEncoding)encoding;
//106.初始化C字元串并且指定編碼,在這裡需要自動釋放記憶體
+ (instancetype)stringWithCString:(constchar *)cString encoding:(NSStringEncoding)enc;
//107.讀取URL位址資料轉化為字元串并且指定編碼,在這裡init建立需要手動釋放記憶體,已經知道編碼
- (instancetype)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
//108.讀取FILE位址資料轉化為字元串并且指定編碼,同樣需要手動釋放記憶體,已經知道編碼
- (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
//109.讀取URL位址資料轉化為字元串并且指定編碼,,這裡會自動釋放記憶體,已經知道編碼
+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
//110.讀取FILE位址資料轉化為字元串并且指定編碼,這裡也會自定釋放記憶體,已經知道編碼
+ (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
//111.讀取URL位址資料轉化為字元串并且指定編碼,在這裡init建立需要手動釋放記憶體,不知道編碼
- (instancetype)initWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;
//112. 讀取FILE位址資料轉化為字元串并且指定編碼,同樣需要手動釋放記憶體,不知道編碼
- (instancetype)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;
//113.取URL位址資料轉化為字元串并且指定編碼,,這裡會自動釋放記憶體,不知道編碼
+ (instancetype)stringWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;
//114.讀取FILE位址資料轉化為字元串并且指定編碼,這裡也會自定釋放記憶體,不知道編碼
+ (instancetype)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;
//115.将資料寫入URL并且指定編碼
- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
//116.将資料寫入檔案并且指定編碼
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
@end
@interface NSMutableString :NSString
//117.使用aString替換前面字元串的指定區域字元
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
@end
//118.可變字元串的擴充方法
@interface NSMutableString (NSMutableStringExtensionMethods)
//119.插入字元串aString,在指定的loc位置
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
//120.删除指定區域段的字元串
- (void)deleteCharactersInRange:(NSRange)range;
//121.追加字元串aString
- (void)appendString:(NSString *)aString;
//122.追加多個字元串
- (void)appendFormat:(NSString *)format, ...NS_FORMAT_FUNCTION(1,2);
//123.設定新的aString
- (void)setString:(NSString *)aString;
//124.初始化一個容量為capacity大小的字元串,并且需要手動釋放記憶體
- (NSMutableString *)initWithCapacity:(NSUInteger)capacity;
//125.初始化一個容量為capacity大小的字元串,但是不用手動釋放記憶體,這些提前指定的容量,知識用于記憶體優化,實際大小可以大于設定的容量capacity
+ (NSMutableString *)stringWithCapacity:(NSUInteger)capacity;
//126.指定限制條件,指定區段中的replacement替換成target
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:
(NSStringCompareOptions)options range:(NSRange)searchRange;
@end
//128.關于字元串編碼檢測的擴充
@interface NSString (NSStringEncodingDetection)
//129.對一份data資料進行轉換為字元串,有可選option字典,另外還有是否允許有損失,最終轉換之後傳回一個編碼種類。下面是7種不同option字典選項
+ (NSStringEncoding)stringEncodingForData:(NSData *)data
encodingOptions:(NSDictionary *)opts
convertedString:(NSString **)string
usedLossyConversion:(BOOL *)usedLossyConversion NS_AVAILABLE(10_10, 8_0);
@end
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionSuggestedEncodingsKeyNS_AVAILABLE(10_10,8_0);
// NSArray of NSNumbers which contain NSStringEncoding values; if this key is not present in the dictionary, all encodings are considered
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionDisallowedEncodingsKeyNS_AVAILABLE(10_10,8_0);
// NSNumber boolean value; if this key is not present in the dictionary, the default value is NO
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionUseOnlySuggestedEncodingsKeyNS_AVAILABLE(10_10,8_0);
// NSNumber boolean value; if this key is not present in the dictionary, the default value is YES
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionAllowLossyKeyNS_AVAILABLE(10_10,8_0);
// NSNumber boolean value; if this key is not present in the dictionary, the default value is NO
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionFromWindowsKeyNS_AVAILABLE(10_10,8_0);
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionLossySubstitutionKeyNS_AVAILABLE(10_10,8_0);
FOUNDATION_EXPORTNSString *const NSStringEncodingDetectionLikelyLanguageKeyNS_AVAILABLE(10_10,8_0);
@interface NSString (NSExtendedStringPropertyListParsing)
//130.将字元串轉化為屬性清單
例如:NSString * stringA = [NSString stringWithFormat:@“Name =xulin ;
age = 23;”];
NSLog(@“%@”,[stringA propertyList]);
控制台輸出為{
Name = xulin ;
age = 23;
}
- (id)propertyList;
//131.字元串轉化為字典
NSDictionary * dictionary = [stringA propertyListFromStringFileFormat];
NSLog(@“%@”,dictionary);
控制台輸出為{
Name = xulin ;
age = 23;
}
- (NSDictionary *)propertyListFromStringsFileFormat
@end
//132.下面是一些棄用代碼。也就是上面所翻譯過的代碼。
@interface NSString (NSStringDeprecated)
- (constchar *)cStringNS_RETURNS_INNER_POINTERNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (constchar *)lossyCStringNS_RETURNS_INNER_POINTERNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (NSUInteger)cStringLengthNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (void)getCString:(char *)bytesNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (void)getCString:(char *)bytes maxLength:(NSUInteger)maxLengthNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (void)getCString:(char *)bytes maxLength:(NSUInteger)maxLength range:(NSRange)aRange remainingRange:(NSRangePointer)leftoverRange NS_DEPRECATED(10_0, 10_4, 2_0, 2_0);
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFileNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomicallyNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (id)initWithContentsOfFile:(NSString *)pathNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (id)initWithContentsOfURL:(NSURL *)urlNS_DEPRECATED(10_0,10_4,2_0,2_0);
+ (id)stringWithContentsOfFile:(NSString *)pathNS_DEPRECATED(10_0,10_4,2_0,2_0);
+ (id)stringWithContentsOfURL:(NSURL *)urlNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (id)initWithCStringNoCopy:(char *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)freeBufferNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (id)initWithCString:(constchar *)bytes length:(NSUInteger)lengthNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (id)initWithCString:(constchar *)bytesNS_DEPRECATED(10_0,10_4,2_0,2_0);
+ (id)stringWithCString:(constchar *)bytes length:(NSUInteger)lengthNS_DEPRECATED(10_0,10_4,2_0,2_0);
+ (id)stringWithCString:(constchar *)bytesNS_DEPRECATED(10_0,10_4,2_0,2_0);
- (void)getCharacters:(unichar *)buffer;
@end
enum {
NSProprietaryStringEncoding =65536
};
#if !defined(_OBJC_UNICHAR_H_)
#define _OBJC_UNICHAR_H_
#endif
#define NS_UNICHAR_IS_EIGHT_BIT 0
@interface NSSimpleCString :NSString {
@package
char *bytes;
int numBytes;
#if __LP64__
int _unused;
#endif
}
@end
@interface NSConstantString :NSSimpleCString
@end
#if __LP64__
#else
externvoid *_NSConstantStringClassReference;
#endif