Format:樣式,格式(1、將非(NSString*)類型的變量轉化成(NSString*)類型 2、打印字符串需要添加※號或斜杠這種字符)
uppercase:大寫
lowercase:小寫
capitalized:首字母大寫
character:字符,符號
Index:索引
exchangeObject:數組中元素位置交換
UTF8String:二進制與OC轉化
description:描述
sub:提取
default:單例
alloc:分配空間
Directory:文件夾
Item: 文件
file:文件
data:數據
encoding:編譯編碼
48~57 對應數字 1~9
65~90 對應字母 A~Z
97~122 對應字母 a~z
空指針:NULL
空變量:nil
[NSString stringWithString:str]:類方法
繼承:父類具有的屬性及方法子類直接獲得,稱為繼承。
派生:子類從父類的基礎上衍生出的新的屬性及方法,稱為派生
代碼編寫
①重寫父類方法,不需要在.h里重復聲明,在.m直接調用即可
②在真正的開發中,更需要保留父類的方法,在父類方法的基礎上添加新的功能。在新功能前添加[super方法名];
③衍生出新的方法及屬性
[superrun]:super表示父類所創建的對象
[selfswim]: self表示一個屬于所處類的具體對象
Father* father1 = [Sonalloc]:father1只是一個指針,[Sonalloc]才是真正從內存中創建得用于存放成員變量的對象
[father1run]:father1這個指針所指的對象終究屬于為她開辟空間的類,而不是創建她的類
變量的出生兩種方式1、變量類型聲明 2、屬性定義 前者出生的變量值無法在外函數使用,而后者可以,但無法在子類中使用
SELsel =@selector(crash)/(crashWithPeople:)/(setArg:):將《crash無參數的方法》或《crashWithPeople:有參數的方法》或《有多個參數的方式》存入剛聲明的sel選擇器中
[blackManrespondsToSelector:sel] == YES:判斷對象是否具備選擇器中的方法
[blackManperformSelector:sel]:對象執行選擇器中的無參數的方法
[blackManperformSelector:selwithObject:@"kaka”]:對象執行選擇器中的輸入參數為kaka的方法
如果只有輸入一個參數的入口而實際情況需要輸入多個參數,那么這個參數可以是一個對象,每一個成員變量包含一個參數,用函數方法將每個參數的值賦給相應的成員變量,然后在這個多參數轉換成單參數,只不過這個參數是對象而不是具體的字符串。說白了,就是先把本該直接賦給方法的多個參數的值先用對象初始化的方式進行接收,再通過以對象為參數的單參數方法里調用賦值函數將對象里成員變量接收到的值賦給需要的多個參數。通過對象傳遞多參數
問題在于如何把對象的成員變量值傳遞到每一個參數上得賦值函數:
- (void)setName:(NSString*)name AndPhoneNumber:(int)phoneNumber AndAge:(int)age
{
_name= name;
_phoneNumber= phoneNumber;
_age= age;
}
存入選擇器中的方法也可以后期從終端進行輸入:
c語言接收方法名字符串—>字符串 C轉OC(UTF)—>存入選擇器—>判斷調用
SELsel2 =NSSelectorFromString(str);
父類里的成員變量以屬性的形式聲明,就得用self的方法才能在子類中調用,同時父類中一定會有構造方法對成員變量進行初始化。
APP中對輸入的字符串進行判斷、轉換和提取?
BOOLret = [str1isEqualToString:str2];
NSComparisonResultret = [str1compare:str2];
NSComparisonResultret = [str1caseInsensitiveCompare:str2]; (注意:這里字符串不區分大小寫,驗證碼就這種)
[strhasPrefix:前綴]
[strhasSuffix:后綴]
[strintValue/floatValue/integerValue]:字符串轉換成整型、浮點型、無符號長整型
NSString* str = [NSStringstringWithFormat:@"%d",a]其它類型轉到字符串,尤其適用于九九乘法表
NSNumber * intNumber = [NSNumber numberWithInt:10];
NSNumber * floatNumber = [NSNumber numberWithFloat:3.14];
[@8isEqualToNumber:@4]
[@6compare:@4.5]
NSString* str = [[NSStringalloc]initWithUTF8String:arr];C語言字符串轉OC字符串
constchar* p = [str UTF8String] OC字符串轉C字符串
NSComparisonResultret = [str1compare:str2]字符串1減去字符串2
NSRangerange = [str1rangeOfString:@“確定字符”]:獲取確定單詞在字符串中的起始位置和終止位置
NSRangerange = NSMakeRange(range.location,range.length)
NSRange Range = {range.location,range.length};
APP中對漢字串中的某個特定漢字進行提取?
NSRangerange = {i,1};
NSString* str = [arabicsubstringWithRange:range];
char a= [strcharacterAtIndex:i]
APP中對字符串進行編輯?
setString
appendString(僅限字符串)、appendFormat(多類型)
componentsSeparatedByString:@“分隔符”
NSCharacterSet* set = [NSCharacterSetcharacterSetWithCharactersInString:@“多個分隔符,無需逗號隔開”]
[strcomponentsSeparatedByCharactersInSet:set]
[arraycomponentsJoinedByString:@“連接符”]
replaceCharactersInRange:rangewithString
insertString
deleteCharactersInRange:range
NSString* str2 = [str1 stringByAppendingString:@“”]:不可變字符串增加字符串
APP中對數組進行操作?
exchangeObject: 交換數組元素位置
[[NSArrayalloc]initWithObjects:@"abc",@"def",nil]:數組初始化賦值
for(idobjectinarray):數組對象遍歷
[objectisKindOfClass:[SeaRobberclass]] ==YES :判斷數組中的對象到底屬于哪一類
NSMutableArray* array3 = [[NSMutableArrayalloc]initWithArray:array]:將不可變數組轉化成可變數組
removeObject:@“”刪除空字符
addObject增加對象
replaceObjectAtIndex:0withObject:@"小麗”: 替換對象
insertObject:@"老王"atIndex:1: 插入對象
exchangeObjectAtIndex:0withObjectAtIndex:1:改變對象
APP中用字典開發通訊錄?
NSDictionary* dict =[[NSDictionaryalloc]initWithObjects:@[@"",@""]forKeys:@[@"",@""]];
NSMutableDictionary* dict = [[NSMutableDictionaryalloc]initWithObjects:@[@"",@"",@""]forKeys:@[@"",@"",@""]];
NSDictionary* dict =@{@"6":@"six",@"7":@"seven"};
allValues/allKeys:找到字典的所有值或鍵
setObject:@""forKey:@"81”:增加/修改
setDictionary:@{@"1":@"One”}]:字典重置
removeObjectForKey:@"41”:刪除字典中鍵為41的數組
removeAllObjects:刪除所有名片(清空)
通訊錄類存名片數量:[dict count]
APP中“菜單”按鈕用SEL選擇器實現?
SELsel =@selector(crash)無參數或單雙參數的方法直接存入(帶參數的方法后面必須有冒號)
SELsel =@selector(setArg:)創建Arg類的對象和setArg:(Arg*)arg賦值給對象的函數,冒號不能少
[對象respondsToSelector:sel2]判斷
[對象performSelector:sel]執行
[對象performSelector:selwithObject:@“參數”]帶參執行
- (void)setName:(NSString*)name AndPhoneNumber:(int)phoneNumber AndAge:(int)age{
_name= name;
_phoneNumber= phoneNumber;
_age= age;
}
- (void)setArg:(Arg*)arg{
[selfsetName:arg.nameAndPhoneNumber:arg.phoneNumberAndAge:arg.age];
NSLog(@"%@%d%d",arg.name,arg.phoneNumber,arg.age);
}
從終端輸入方法名字符串的情況
charbuf[10] = {};
scanf("%s",buf);
NSString* str = [[NSStringalloc]initWithUTF8String:buf];
SELsel2 =NSSelectorFromString(str);
APP通過“繼承”為調用的官方或第三方類添加更適合當前項目的方法和屬性?
APP中提取網絡時間?
NSDate:時間類(創建的對象就是時間,返回時間的格式)
[NSDatedate]
NStimeInterval:時間變量類(創建的對象是sec-秒)
[datetimeIntervalSinceNow]:返回date時間距離現在多少秒
[現在timeIntervalSinceDate:出生]:返回現在我已近活了多少秒
NSTimeZone:時間時區類
NSTimeZone* timeZone = [NSTimeZonesystemTimeZone]:當前系統時區
NSDictionary* dict = [NSTimeZoneabbreviationDictionary]:字典存入所有時區
NSDateFormatter:時間戳類,可以通過它改變返回的時間的格式
NSDateFormatter* formatter = [[NSDateFormatteralloc]init];
formatter.dateFormat=@"yyyy年MM月dd日HH時mm分ss.S秒";
formatter.timeZone= [NSTimeZonetimeZoneWithAbbreviation:@"HKT"];
NSDate* date = [NSDatedate];//獲得當前時間
NSLog(@"%@",[formatterstringFromDate:date]);
APP設置鬧鐘?
NSTimer:定時器類
NSDate* endDate = [NSDatedateWithTimeIntervalSinceNow:3600]:鬧鐘設在3600秒后
NSData創建的對象默認的格式是:@"2015-06-12 08:55:25 +0000"
現在的時間與設定的時間進行比較:
if(date.timeIntervalSinceReferenceDate> endDate.timeIntervalSinceReferenceDate)
sleep(1);在While的循環里每隔多少秒循環判斷一次
APP顯示文件夾里的內容路徑?
NSFileManager:文件管理類
[NSFileManagerdefaultManager]:對象初始化
contents:只查找指定路徑下面的一層文件路徑
subpaths:查找指定路徑的下層所有文件路徑
hasSuffix:有后綴
hasPrefix:有前綴
APP中做文件的緩存,就像微博,在無網絡的情況都能刷出已近刷出來得內容?
1、新建文件?
NSFileManager:文件管理類
[NSFileManagerdefaultManager]:對象初始化
fileExists:判斷文件是否存在
createFile:創建文件(路徑,內容,屬性)
attributesOfItem:獲取文件屬性(用字典接收)
dict[@"NSFileSize”]:文件大小
2、文件編輯?
NSFileManager:文件管理類
[NSFileManagerdefaultManager]:對象初始化
moveItem/removeItem/copyItem
3、文件讀寫?
NSFileHandle:文件句柄類
[NSFileHandlefileHandleForReadingAtPath:路徑]:對象初始化
NSData:數據類
NSString:字符串類
Data encoding:數據轉字符串
dataUsingEncoding:字符串轉數據
NSUTF8StringEncoding:二進制與OC
readDataOfLength:閱讀指定長度的字節數據
seekToFileOffset:指定位置讀取字節
synchronizeFile:文件立即同步
APP中存儲固定數據?(存儲的plist文件是什么結構就用什么類)
1、官方類創建的對象(plist)(自定義類型的數據無法存儲,通常存儲長時間不變的數據)
NSDictionary:字典類(字典鍵對應的值可以是數組名)
writeToFile(路徑字符串)atomically:YES生成plist文件
dictionaryWithContentsOfFile:解析plist文件
new file—>resource—>property list以程序的方法進行設置
2、自定義類創建的對象(歸檔)
[NSKeyedArchiver archiveRootObject:指針toFile:路徑]:對象歸檔
[NSKeyedUnarchiverunarchiveObjectWithFile:路徑]:對象解檔,檔里是啥類型,就用什么類型創建的對象進行接收,且在等號后加一個(類名*)避免出錯
NSObject//遵守歸檔的協議
//歸檔自定義對象時調用
-(void)encodeWithCoder:(NSCoder*)aCoder
{
[aCoderencodeInt:self.ageforKey:@"AGE"];
[aCoderencodeObject:self.nameforKey:@"NAME"];
}
//解檔自定義對象時調用
-(instancetype)initWithCoder:(NSCoder*)aDecoder{
if(self= [superinit])
{
self.age= [aDecoderdecodeIntForKey:@"AGE"];
self.name= [aDecoderdecodeObjectForKey:@"NAME"];
}
returnself;
}
APP中的賬號和密碼存儲及不同界面傳值?
NSUserDefaults:用戶單例類
[NSUserDefaultsstandardUserDefaults]:對象初始化
setObject:值forKey:鍵 :增加鍵和值
synchronize:及時同步
objectForKey:鍵 :取鍵對應的值,用字符串對象接收
removeObjectForKey:鍵 :刪除鍵和鍵對應的值
APP通過Json格式與服務器端進行數據交換?
1、本地File路徑
//宏定義JSON文件路徑位置
#define PATH @“路徑”
//Json文件轉化成字符串
NSString* str = [NSStringstringWithContentsOfFile:PATHencoding:NSUTF8StringEncodingerror:&error];
//字符串放入緩沖區轉換成二進制數據
NSData* data = [strdataUsingEncoding:NSUTF8StringEncoding];
2、網絡URL網址
//宏定義JSON網絡路徑位置
#define URL @“網址”
//將網絡URL字符串轉換為可識別的網址的格式
NSURL* url = [NSURLURLWithString:URL];
//Json文件轉化成字符串(本地是File路徑 網絡是URL網址)
NSString* str = [NSString stringWithContentsOfURL:urlencoding:NSUTF8StringEncoding error:nil];
3、對容器的內容進行特定提取(遇到數組就接收,遇到字典就遍歷)
字典接受Json所有內容
NSDictionary* dict = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
數組接受字典里的數組值
NSArray* Array = Dict[@“鍵”]
遍歷數組里的每一個字典
for(NSDictionary* Dictin Array)
model對象接收字典里所有不止一個鍵的值(model對象的初始化必須放在數組的字典遍歷里,否則自動覆蓋已存入信息)
[model setValuesForKeysWithDictionary:字典創建的對象名]://使用它必須model對象的成員名==鍵的名字
APP中輸入四川省彈出四川所有城市名?
輸入漢字并轉化成OC的字符串
chararr[123] = {};
scanf(“%s”,arr);
NSString* str1 = [[NSStringalloc]initWithUTF8String:arr];
漢字是否相等的比較
[str1compare: dict1[@"省"]] ==0 //在元素全是字典的數組遍歷時,拿字符串與字典特定鍵對應值相比較
([array[i]isEqualToString:str1] ==YES)//先將要比較的字符串通過遍歷的方式加到一個數組,for循環數組逐個與從終端輸入的字符串進行比較
APP中通過XML格式與服務器進行數據交換?
1、Xcode里添加GData文件才能解析XML數據
①將路徑/usr/include/libxml2添加到工程的頭文件中
Target->build Settings->search->search paths->header search paths ->點擊加號添加路徑
②GData運行在手動內存管理下,因為整體工程運行在自動內存管理下,所以需要為GData庫添加內存管理混編。
Target->build phase- >complie sources->添加-fno-objc-arc
③GData是用libxml這個系統庫,但該系統庫沒有包含在Foundation庫下,所以需要手動添加系統庫。
Target->build phase->Link binary with Libraries->添加libxml2.dylib
2、1 用XML解析(絕對路徑,從頭到尾)
//XML數據轉換成字符串
NSString* xml = [NSStringstringWithContentsOfFile:PATHencoding:NSUTF8StringEncodingerror:nil];
GDataXMLDocument* document = [[GDataXMLDocumentalloc]initWithXMLString:xmloptions:0error:nil];
//逐步進行解析
根元素:GDataXMLElement* rootEle = [documentrootElement];
子元素:GDataXMLElement* booksEle = (GDataXMLElement*)[rootElechildAtIndex:0];
子元素本質就是一個包含多個孩子的數組集合:NSArray* booksArray = [booksElechildren];
遍歷每一個孩子時,需要先用GDataXMLElement創建一個對象才能接收
遍歷:for(GDataXMLElement* bookEleinbooksArray)
初始化化孩子為對象:GDataXMLElement* summaryEle = [[bookEleelementsForName:@"summary"]firstObject];
2、2用XPATH進行解析(相對路徑)
NSArray* array = [documentnodesForXPath:@"http://book[限制條件]/name|//book[限制條件]/summary"error:nil];
限制條件包括:ID號、last()、position(<3)、@ID=2、@price
for(GDataXMLElement* eleinarray)NSLog(@"%@",ele.stringValue)
注意:有一種XML文件加密了,叫帶有命名空間的XML文件
NSDictionary* dict =@{@“鍵”:@“值”,@“鍵”:@“值”};//注意:字典添加鍵值對是大括號,而數組添加對象則是中括號
NSArray* array = [documentnodesForXPath:@"絕對路徑"namespaces:@"命名空間的字典"error:nil];
注意:@"xmlns:root/xmlns:books/xmlns:book/book:name”才是絕對路徑,而非@"/root/books/book:name"
APP開發過程中考慮屬性的線程安全問題?
@property()是一個屬性訪問聲明,擴號內支持以下幾個屬性:
1、getter=getterName,setter=setterName,設置setter與getter的方法名
2、readwrite,readonly,設置可供訪問級別
3、nonatomic,非原子性訪問,不加同步,多線程并發訪問會提高性能。注意,如果不加此屬性,則默認是兩個訪問方法都為原子型事務訪問。鎖被加到所屬對象實例級
4、atomic原子修飾符,表示線程安全
APP中使用單例的操作?
1、創建一個普通類和一個類方法
2、對類創建的對象以類方法的形式進行初始化
3、類方法就是staticSingleClass* single;//static表示內存為這個類創建的對象從始至終只分配一次空間
if(single ==nil) single = [[SingleClassalloc]init];
returnsingle;
4、main函數里類創建的對象=[類名用來初始化的類方法];
單例對象地址都是靜態,所以其實就一個內存地址
App中實現類別:為官方類添加方法補丁?
也就是在新出現的頭文件和 . m文件中分別一種類封裝的形式進行處理!頭文件寫方法名,.m文件寫實現!類別里可以直接使用官方類的方法和屬性變量,而且添加了類別
OC中有多繼承么?如果沒有該怎么實現?(協議代理虛擬實現)
App中做一個動畫?
過去:
1、開啟動畫
2、設置屬性
3、動畫結構
現在:
直接調用一個封裝好的Block,界面時體會更深
App視頻播放緩沖界面的制作?(block的傳值與回調)
1、在視頻播放器類里添加視頻播放方法,方法實現寫入內容為輸出"下載已完成"的Block;
2、在下載器的類里添加下載的方法,只是這個方法的定義涉及到Block的傳值;(類型+Block名)輸入輸出地類型都寫,中間用(^)隔開;
-(void)downLoadWithBlock:(void(^)(NSString*))videoBlock;
3、在下載器的方法實現里在下載完成后使用Block;
4、在播放器的實現方法中創建一個下載器的對象調用下載器里的方法(去類型,留塊名);
5、通過Block的參數可以把一個類里地值傳到里一個類里。界面傳值本質就是傳參數;
在ARC自動內存管理的情況下再通過少量代碼增加MRC手動內存管理,手機運行App時盡可能減少內存的使用?避免浪費用戶的機器資源?
內存管理本質:管理對象的引用計數(指向對象空間地址的個數)
內存泄露:內存空間使用完畢之后未回收
release和dealloc的區別?
無直接關系,只是對引用計數進行減一操作
dealloc才是真正釋放內存(當引用計數器為0時自動調用)
面向對象的本質在于,對許多對象提取出共性放在一起處理。這樣,各式容器的使用就是無可避免的了
將一個具體的類有手動內存管理轉化成自動內存管理?(刪除可以刪的所有release手動釋放代碼)
Edit—>Refactor—>convert ··ARC—>選擇類
copy常用于修飾字符串(NSString)通常其他對象使用retain進行修飾符
strong與retain用法相同在MRC下通常使用retain修飾屬性,而在ARC下通常使用strong修飾屬性
類方法創建對象:NSString * str = [[NSString alloc]init];對象是被系統自動歸到自動釋池下管理(典型的標志就是沒有alloc)
實例創建的對象:NSString * str = [NSString StringWithString:@"Carden"];如果在手動內存管理模式下,需要用release方法進行釋放
在@implementation下聲明的變量是這個類的私有變量,外部是無法訪問的
在@interface下聲明的變量可以設定為全局或者私有變量
在@property聲明的就是全局變量,外部既可以訪問,內部也可以調用
多態:子類重寫父類方法,然后用父類引用指向子類對象,調用方法時候會進行動態綁定,這就是多態。多態對程序的擴展具有非常大的作用,如果有配置文件甚至可以不動源碼。
Father* father1 = [Sonalloc];//父類的指針可以指向子類的對象
[father1run];//執行方法,不看指針,而是看對象是通過哪個類來開辟空間創建
協議與Block的比較?
協議本質:
1類方法里創建協議和實現2類方法的協議屬性;2類添加協議所在的頭文件和<協議名稱>;
創建1類對象,創建2類對象,把2類對象賦值給1類屬性,1類對象執行方法
Block本質:
1類方法里創建塊方法和實現2類方法的2類對象;2類方法的參數為塊類型,滿足條件后執行塊方法;
創建1類對象,1類對象執行方法
傳值本質:
方法1包含方法2,方法1的的參數變量直接寫成方法2的輸入參數,只要方法調用方法就可以做到。
傳值始終:
協議的初始值出現在主動類的方法里,Block的初始值出現在包含Block類型的方法里。
- (void)button:(BOOL)state AndBlock:(void(^)(BOOL))block;
協議作用:
協議可以讓類1和類2甚至類3等完全不同的類各自創建的對象使用同一個方法,而且可以有參數,因為id類型不論什么類創建的對象都可以接受,也就是說,字符串創建的對象和數組和字典創建的對象都可以接收
//Document:存放長期要用的文件
//library:存放系統文件
//tmp:存儲臨時文件,APP重啟時,該目錄下的文件清空
NSLog(@"文件大小:%@",dict[@"NSFileSize"]);
NSFileManager * manager = [NSFileManager defaultManager];
(對象)[文件管理器創建的單例contentsOfDirectoryAtPath(數組)/subpathsOfDirectoryAtPath(數組)/attributesOfItemAtPath(字典)]
(布爾值)[文件管理器創建的單例fileExistsAtPath/createFileAtPath/copyItemAtPath/moveItemAtPath/removeItemAtPath]
文件句柄:指定已知路徑下文件的操作權限(只讀/只寫/讀寫)
NSFileHandle * fileHandele = [NSFileHandle fileHandleForReadingAtPath/fileHandleForWritingAtPath/fileHandleForUpdatingAtPath]
[文件句柄創建的對象readDataOfLength(數據)/seekToFileOffset(void)/seekToEndOfFile(void)/writeData:data(void)/synchronizeFile(void)]
NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//數據轉字符串
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];//字符串轉數據
[已存放內容的官方類型指針writeToFile:文件路徑及文件名] .Plist文件的生成
[NSDictionary dictionaryWithContentsOfFile(內容官方類型)] .Plist文件的讀取
[NSKeyedArchiver archiveRootObject(布爾值)/unarchiveObjectWithFile(內容類型)] .data文件的生成和讀取
基類NSObject后添加歸檔協議
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder (encodeInt/encodeObject):self.屬性(void)];
}//歸檔-自定義的.m文件添加
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self= [superinit])
{
self.age = [aDecoder decodeIntForKey:@"AGE"];
}
returnself;
}//解檔-自定義的.m文件添加
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];//存儲用戶個人登錄信息的單例對象初始化
[用戶單例創建的對象setObject(void)/objectForKey(字符串)/removeObjectForKey(void)]//增加、提取、刪除
/*
#import "GDataXMLNode.h"
#define PATH @"/Users/qianfeng/Desktop/1518OC第10天/xml/xml.txt"
NSString * xml = [NSString stringWithContentsOfFile:PATH encoding:NSUTF8StringEncoding error:nil];
GDataXMLDocument * document = [[GDataXMLDocument alloc]initWithXMLString:xml options:0 error:nil];
NSArray* array = [documentnodesForXPath:@"http://ComeChannel/BuyCarBudget"error:nil];
for(GDataXMLElement* eleinarray)
{
NSLog(@"%@",[[ele addAttribute:for@"name"]stringValue]);
}
GDataXMLElement * rootEle = [document rootElement];
GDataXMLElement * booksEle = (GDataXMLElement*)[rootEle childAtIndex:0];
NSArray * booksArray = [booksEle children];
for (GDataXMLElement * bookEle in booksArray)
{
GDataXMLElement * summaryEle = [[bookEle elementsForName:@"summary"]firstObject];
NSLog(@"%@",summaryEle.name);
NSLog(@"%@",summaryEle.stringValue);
NSLog(@"%@",summaryEle.XMLString);
}
NSDictionary* dict =@[@"book":@"http://www.baidu.com",@"xmlns":@"http://www.sina.com.cn"];
NSArray* array = [document nodesForXPath: namespaces:dict error:nil];
*/
1.判斷字符串中提取的字符類型?(中文,字母)
2.可變數組添加的ID為什么不能是NSInteger?
-(NSString*)description{
return[NSString stringWithFormat:@"count = %d index = %ld",count,(long)indx];
}
OC入門
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 在學習OC中,關于OC的幾個重點概念想在這兒做幾點總結和深入的了解。好了,話不多說,讓我們開始吧: 1.關于繼承和...
- 平時開發難免會遇到Native和Web對接的情況, 在通常情況下, 都是需要Native提供一些數據(同步或者異步...
- 我第一周學會了在類中如何創建一個對象以及編譯器在其中做了什么事情,簡單來說就是創建一個同名的加下劃線的實例變量還有...