IOS開發(fā)筆記

此貼會經(jīng)常更新添加新內(nèi)容,敬請關(guān)注!

首先給出iOS開發(fā)常用開源代碼和第三方庫:http://www.cocoachina.com/applenews/devnews/2013/0128/5622.html

視頻分享:

http://www.lanrenios.com/tutorials/basic/2012/1218/630.html

http://www.lanrenios.com/tutorials/basic/2013/0121/806.html

這是一個大神的博客,可以多多學(xué)習(xí):http://geeklu.com/

修改appid 信息:appleid.apple.com

蘋果開發(fā)者支持中心:40067108551

1、獲取info.plist文件內(nèi)容,名稱/版本號......

NSDictionary*progectInfo = [[NSBundlemainBundle]infoDictionary];

NSString*idst = [progectInfoobjectForKey:@"CFBundleIdentifier"]; ? ? ?// 獲取應(yīng)用標(biāo)識

Dlog(@"%@", idst);

2、NSLog宏定義

#ifdef DEBUG

#define Dlog(format, ...) NSLog(format, ##__VA_ARGS__)

#else

#define Dlog(format, ...)

#endif

3、UIImageView之上的UIButton默認(rèn)是不觸發(fā)事件的,加入一行代碼搞定:

UIImageView*bgView = [[UIImageViewalloc]initWithImage:[[UIImageimageNamed:@"sdf"]autorelease]];bgView.userInteractionEnabled=YES;

4、設(shè)置視圖不支持橫屏顯示,修改info-plist文件,直接上圖:

5、相冊照片選中后可以編輯大小/移動位置,修改選擇器:

imagePicker.allowsEditing=YES; 接著在代理方法中這樣獲得修改后的照片: UIImage*editedImage = [infoobjectForKey:UIImagePickerControllerEditedImage];

6、當(dāng)我們的應(yīng)用需要支持中文國際化時,比如打開相冊,菜單都是中文的.可以在PROJECT下添加,添加中文支持后infoPlist.strings會自動添加一個中文的空文件,直接上圖:

7、(1)顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES

隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO

操作完之后要強制退出Finder并從新啟動。

(2)MAX刪除文件夾下的所有.svn文件

打開終端應(yīng)用;將準(zhǔn)備刪除的文件夾拖拽到終端,得到該文件夾的絕對路徑;

cd ?剛才得到的路徑,進入該文件夾;

執(zhí)行 ?rm -rf `find . -type d -name .svn` 命令;

注意這個符號 : “ ?` ?” ,在mac下先按 fn 鍵 再按 esc 下面的哪個鍵; 或則直接拷貝上面的命令

8、程序停止/間隔執(zhí)行:

(1)sleep(300);

(2)(1)[NSThread sleepForTimeInterval:5.0];

(3)[selfperformSelector:@selector(startupview)withObject:nilafterDelay:3];

9、隱藏iPhone通知欄

(1)application.statusBarHidden=YES;

(2)可以修改info.plist文件:

10、標(biāo)簽欄默認(rèn)高度是48寬度152(四個菜單時),TabBarItem的圖片尺寸是30X30,這個應(yīng)該是帶字的,不帶字@2x應(yīng)該是44比較好看,導(dǎo)航欄

/UISegmentedControl /?工具欄 / uitableviewcell的默認(rèn)高度都是44,狀態(tài)欄默認(rèn)高度是20.

11、UINavigationController和UITabBarController都是容器控制器,別打算給他們或他們的子類直接添加標(biāo)題等操作。

12、導(dǎo)航欄在不同的視圖控制器中隱藏和出現(xiàn)時會有黑色的條閃現(xiàn),解決方法:[self.navigationControllersetNavigationBarHidden:YESanimated:YES]; 不要用傳統(tǒng)的這個屬性設(shè)置self.navigationController.navigationBarHidden = YES。

13、今天遇到一個很有趣的問題,花費了近一個小時才搞定。當(dāng)我們用UINavigationController壓入普通視圖控制器顯示UIWebView時,網(wǎng)頁由于UINavigationBar的高度無法通過滑動完全顯示,意思就是當(dāng)我把頁面滑動到最低部網(wǎng)頁還是不能完全顯示,問題就出在導(dǎo)航欄的高度影響了。解決方案很怪異,我設(shè)置了UIWebView的高度減去導(dǎo)航欄高度就ok了,代碼如下:

CGRectrect = [UIScreenmainScreen].bounds;

_uiWebView= [[UIWebViewalloc]initWithFrame:CGRectMake(0,0, rect.size.width, rect.size.height-60)];

14、AudioServicesPlaySystemSound(1013); ?調(diào)用系統(tǒng)鈴聲。(1013只是其中一個聲音)

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); ?調(diào)用系統(tǒng)震動

15、Unbalanced calls to begin/end appearance transitions for......這種錯誤是某個視圖在切換時,動畫沒有結(jié)束又有新的動畫即將開始,所以就出問題了,解決辦法之一是去掉動畫。比如[self.navigationControllerpushViewController:zbarReaderanimated:NO]; 不用YES;

16、UILabel和UITextField,UITextView區(qū)別

UILabel 顯示的文本只讀,無法編輯,可以根據(jù)文字個數(shù)自動換行;

UITextField 可編輯本文,但是無法換行,只能在一行顯示;當(dāng)點擊鍵盤上的return時會收到一個事件做一些事情

UITextView 可編輯文本,提供換行功能。textView.layer.cornerRadius=10;//設(shè)置圓角

其實這些控鍵是否可編輯,自己可以手動設(shè)置。

17、ios編輯框隱藏鍵盤

(1)點擊編輯區(qū)域外隱藏鍵盤

UITapGestureRecognizer*tapGr = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(dismissKeyBoard)];

tapGr.cancelsTouchesInView=NO;

[self.navigationController.navigationBaraddGestureRecognizer:tapGr];

(2)鍵盤上面添加隱藏按鈕

UIToolbar* topView = [[UIToolbaralloc]initWithFrame:CGRectMake(0,0,320,30)];

[topViewsetBarStyle:UIBarStyleBlackTranslucent];

UIBarButtonItem* doneButton = [[UIBarButtonItemalloc]initWithTitle:@"隱藏鍵盤"style:UIBarButtonItemStylePlaintarget:selfaction:@selector(dismissKeyBoard)];

NSArray* buttonsArray = [NSArrayarrayWithObjects:doneButton,nil];

[topViewsetItems:buttonsArray];

[textViewsetInputAccessoryView:topView];

18、當(dāng)需要一次創(chuàng)建很多個UILabel或者其他控鍵,如果他們的坐標(biāo)是有規(guī)律可循,就用循環(huán)創(chuàng)建。目前蘋果沒有提供一次創(chuàng)建多個屬性相同標(biāo)題不同的控鍵。

19、iOS開發(fā)之去除icon圖標(biāo)特效,陰影、反光

添加一個Icon already includes gloss effects并選擇yes,然后icon位置Prerendered搭鉤如下圖:

20、當(dāng)UITextField的內(nèi)容左對齊時太靠近左邊怎么辦?我們可以利用分類機制重寫UITextField的自帶方法:

新建文件名字叫UITextFieldCategory.h / .m共兩個文件

.h內(nèi)容如下:

@interfaceUITextField (textMath)

- (CGRect)editingRectForBounds:(CGRect)bounds;

- (CGRect)textRectForBounds:(CGRect)bounds;

@end

.m內(nèi)容如下:

#import"UITextFieldCategory.h"

@implementationUITextField (textMath)

//利用分類重寫UITextField的內(nèi)容布局方法

- (CGRect)editingRectForBounds:(CGRect)bounds

{

returnCGRectMake(bounds.origin.x+10.0f, bounds.origin.y, bounds.size.width, bounds.size.height);

}

- (CGRect)textRectForBounds:(CGRect)bounds

{

returnCGRectMake(bounds.origin.x+10.0f, bounds.origin.y, bounds.size.width, bounds.size.height);

}

@end

21、刷新、提示、進度條實現(xiàn),有第三方庫非常方便MBProgressHUD,可以在github上下載,地址:https://github.com/jdg/MBProgressHUD

22、發(fā)送郵件功能可以使用SKPSMTPMessage第三方庫,注冊一個gmail帳號就可以直接發(fā)送郵件到你制定的郵箱(qq郵箱),需要倒入框架。

23、給iphone模擬器相冊保存圖片向ios模擬器里添加圖片的方法不止一種,這里介紹最簡單的:打開模擬器后,用電腦的 Safari 瀏覽網(wǎng)頁,將需要的圖片拖到 iPhone 模擬器,模擬器就會自動打開 Safari 瀏覽到這張圖片了。此時長按圖片,在彈出的對話框里選擇保存就搞定了。

24、設(shè)置navigation上tablebar的barButtonItem顏色

self.navigationController.navigationBar.tintColor= [UIColorcolorWithRed:104/255green:189/255.0blue:227/255.0alpha:1];

25、創(chuàng)建手勢之后,在執(zhí)行了手勢選擇器后記得移出手勢,特別是這個手勢添加到一個其他控制器也使用到的對象上:

tapGr= [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(dismissKeyBoard)];

[self.navigationController.navigationBarremoveGestureRecognizer:tapGr];

26、應(yīng)用添加評論打分,直接進入appstore評分頁面鏈接(只要更換id就可以了):itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=331351772

27、點擊home鍵,讓程序再次點擊時重新打開程序。在Information Property List下找到“Application does not run in background”屬性,然后將這個值設(shè)置成YES。

28、ios應(yīng)用右上角添加小紅圈,如果值為0則去除紅圓圈。[UIApplicationsharedApplication].applicationIconBadgeNumber=2;

29、多線程注意事項:

(1)UI創(chuàng)建和操作都在主線程執(zhí)行。(2)非主線程主要執(zhí)行耗時的大數(shù)據(jù)處理,或者是網(wǎng)絡(luò)加載過程。

(3)每個線程的內(nèi)存管理都由開辟內(nèi)存的線程管理。

(4)次線程最好用自動內(nèi)存管理池管理內(nèi)存。

30、sendSynchronousRequest同步請求時,如果使用post傳遞參數(shù),后臺用Java接收參數(shù),必須在客戶端設(shè)置參數(shù)類型:

[requestsetValue:@"text/xml"forHTTPHeaderField:@"Content-Type"]; 如果忘記這句代碼,后臺是無法獲取參數(shù)值的。

31、XCode中文亂碼

在Mac下用普通的文本編輯器(或者用word從新保存)打開源文件,全文復(fù)制粘貼回XCode 。粘貼時提示有不可表示字符,選擇重新保存成UTF-8即可。

32、部分文件設(shè)置或者取消arc機制:選中Targets--> 選擇 Build Phases --> 展開Compile Sources ?,我們看到第二列的名稱為:Compiler Flags雙擊你所要使用ARC的文件,并輸入-fobjc-arc即可添加arc,如果想讓使用ARC機制的代碼不使用ARC機制,只需要輸入-fno-objc-arc

33、CATransition移動視圖或者淡入淡出效果經(jīng)常對UIImageView或其他視圖不其作用,此時就添加一層UIView視圖,動畫加到UIView上,UIImageView加到這個UIView上就OK了。

34、linker command failed with exit code 1 (use -v to see invocation),這種錯誤一般由兩種原因造成:

(1)Target-->Build Phases-->compile Sources中缺少了某個.m文件,點擊+號導(dǎo)入進來就可以了。

(2)Target-->Build Phases-->compile Sources中重復(fù)添加了多個相同的.m文件,刪掉多余的就可以了。

35、當(dāng)switch case的分支中定義了變量,就必須加大括號,否則語法錯誤。

36、xcode5基于iOS5.0而不是iOS7開發(fā)的話,添加百度地圖SDK時報錯,有個地方需要注意

37、UITextField最開始獲得的textField.text時,不是@"",而是nil。被這問題搞了很長時間,郁悶啊。

38、Objective-C內(nèi)存管理(iOS內(nèi)存管理)

(1) IOS對象一直都在堆上(重點啊)。

(2) 方法的參數(shù)識別:帶*星號的,是類指針變量,內(nèi)容在堆上,不帶星號的是普通局部變量在棧上。

(3) ARC中默認(rèn)的指針類型就是strong。

(4) 在默認(rèn)情況下,所有的實例變量(對象)和局部變量(對象)都是strong類型的。

(5) 只要某個對象被任一strong指針指向,那么它將不會被銷毀。如果對象沒有被任何strong指針指向,那么就將被銷毀。

(6) 在ARC機制作用下,當(dāng)某個對象被銷毀后,所有指向這個對象的weak指針將被置為nil,weak指針沒有實際指向?qū)ο蟆?/p>

(7) 相信無數(shù)的開發(fā)者都曾經(jīng)被指針指向已釋放對象所造成的EXC_BAD_ACCESS困擾過,使用ARC以后,不論是strong還是weak類型的指針,都不再會指向一個dealloced的對象,從根源上解決了意外釋放導(dǎo)致的crash。

(8) NSString *str0 = @"abc"; 和NSString *str1 = @"abc"; 都在靜態(tài)存儲區(qū)存儲,此時的str0和str1指針比較是相等的。

39、UIlabel自動換行,uilabel換行設(shè)置

//自動折行設(shè)置

label.lineBreakMode?=?UILineBreakModeWordWrap;

label.numberOfLines?=0;

40、iOS系統(tǒng)默認(rèn)可以向程序中增加最多64個本地通知,本地通知目前只能按照時分秒、年月日提示,如果想按每兩天提醒一次,就麻煩了。要判斷機器是不是支持本地通知,然后在為每一個通知指定一個標(biāo)識,取消時會用。

41、有時應(yīng)用在啟動時就會閃退,請查看你的以下方法中是否添加了耗時操作,比如網(wǎng)絡(luò)請求。

application:didFinishLaunchingWithOptions:

applicationWillResignActive:

applicationDidEnterBackground:

applicationWillEnterForeground:

applicationDidBecomeActive:

applicationWillTerminate:

上面所有這些方法,應(yīng)用只有有限的時間去完成處理。如果花費時間太長,操作系統(tǒng)將終止應(yīng)用。

42、推薦一個xcode控件KSImageNamed,KSImageNamed是一款方便填寫圖片文件名稱的插件。支持NSImage和UIImage,當(dāng)你寫到[UIImage imaged:的時候,插件會把項目中的圖片名稱提示出來,并且還有預(yù)覽功能,對經(jīng)常用代碼生成圖片視圖的童鞋十分方便。此控件使用很方便,只要打開所下載的工程然后編譯通過,再退出重新打開XCODE就可以了。下載地址:https://github.com/ksuther/KSImageNamed-Xcode

43、修改navigationBar背景色和title顏色

[userCenterNC.navigationBarsetBackgroundImage:[ToolimageWithColor:UIBUTTON_BGCORLOR]forBarMetrics:UIBarMetricsDefault];

userCenterNC.navigationBar.titleTextAttributes= [NSDictionarydictionaryWithObject:[UIColorwhiteColor]forKey:UITextAttributeTextColor];

//navigationBar返回顏色

userCenterNC.navigationBar.tintColor= [UIColorwhiteColor];

44、修改狀態(tài)欄為白色,在info.plist文件中添加兩個屬性

View controller-based status bar appearanceNO

[applicationsetStatusBarStyle:UIStatusBarStyleLightContent]; (此代碼加在AppDelegate中)

45、XCODE在Macbook Pro下觸摸板左右滑動不能切換界面,這個問題搞了一個鐘頭,所以記錄一下:方法是在打開電腦的系統(tǒng)偏好設(shè)置——>觸控板——>更多手勢,選中第一項“在頁面之間輕掃”并且給“兩個手指左右滾動”打鉤。好了這樣就解決了,上圖會看的更清晰。

46、XCODE開發(fā)時有個插件可以自動填充注釋VVDocumenter-Xcode,使用方法先去github下載工程,接著編譯成功后~/Library/Application Support/Developer/Shared/Xcode這個目錄中多了一個Contents文件,里面會有個Info.plist配置文件。這時重新啟動XCODE就可以使用自動注釋了,在方法前輸入///三個斜杠就可以了。

下載地址:https://github.com/onevcat/VVDocumenter-Xcode

47、iOS開發(fā)中有可能在程序打包前初始化很多數(shù)據(jù),比如題庫資料。上次同事給我整理了一份txt文檔,里面存儲的是大量的json數(shù)組,文件有3M左右,我剛開始用

[NSArray arrayWithContentsOfFile:path]讀取內(nèi)容,每次都返回nil,后來先給數(shù)組加了一個"key",先獲取data數(shù)據(jù),然后轉(zhuǎn)成字典。data已經(jīng)有數(shù)據(jù)了,但是字典還是nil。讓我很郁悶,后來我看到xcode中顯示的txt中文有亂碼,感覺跟編碼方式有關(guān)系,所以在MAC上先打開txt復(fù)制所有內(nèi)容,然后粘貼到xcode,這是xcode會提示你保存的utf-8格式,點擊確定,再次粘貼一下。發(fā)現(xiàn)xcode看到的txt都是中文。然后解析字典數(shù)據(jù)終于出來了,我內(nèi)個去啊。

48、關(guān)于autolayout在故事板的應(yīng)用

49、Schema->Run->Diagnostics 里面選中EnableAddressSanitizer這個選項打鉤太恐怖了。

今天使用MKMapView,一打開地圖內(nèi)存就持續(xù)暴漲,然后上到600M左右就閃退,浪費一天時間沒找出問題,最后在XCODE中把上面的勾去掉,一切就好了。

[objc]view plaincopy

print?

50、storyboard故事板使用UIScroller注意事項,在StoryBoard中使用UIScrollView一定要用下圖中的這種布局,如果剛開始沒想到用UIScrollView后來才想加,可以選中所有Subview然后選擇Editor?-?Embed?in?-?Scroll?View,ContentView忘加了也可以類似操作。

如果scrollerView的高度超過屏幕高度,還想要添加控件時,設(shè)置Intrinsic Size 為 Placeholder,這樣storyboard會給你展示臨時的高度,運行時不會以這個高度為準(zhǔn),或者設(shè)置viewcontroller的Simulated Size屬性為Freeform值,運行時改回fixed就可以了。ScrollView上面的空間都要設(shè)置上下左右和寬高,除非是imageview設(shè)置了圖片會有默認(rèn)大小不需要約束寬高。布局時必須讓UIScrollView知道其contentSize大小,而不是一個不確定的值,這樣才算完成UIScrollView布局,不然會有類似這樣的警告:has ambiguous scrollable content height。

51、NSUserDefaults只能保存系統(tǒng)自帶對象,比如字典、字符串、數(shù)組等。并且不能有null值,否則會報錯Attempt to set a non-property-list object。

52、蘋果推送證書跟bundle id是一一對應(yīng)的。

53、如果一個xib要裝載多個cell,記得在cell.h文件反過來再劃線到xib一次,不然經(jīng)常系統(tǒng)會錯亂cell.h中的屬性是屬于xib中那個cell的。

54、想要headerView伴隨著cell一起向上滑動,也就是viewForHeaderInSection這個view。有兩種方式可以解決:

(1)在當(dāng)前控制器中重寫scrollViewDidScroll,這個方式在有下拉刷新和加載分頁時有些小問題。

[objc]view plaincopy

print?

-?(void)scrollViewDidScroll:(UIScrollView*)scrollView?{

if(scrollView?==self.tv)

{

CGFloat?sectionHeaderHeight?=?tvHeadViewHeight;

if(scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0)?{

scrollView.contentInset=?UIEdgeInsetsMake(-scrollView.contentOffset.y,0,0,0);

}elseif(scrollView.contentOffset.y>=sectionHeaderHeight)?{

scrollView.contentInset=?UIEdgeInsetsMake(-sectionHeaderHeight,0,0,0);

}

}

}

(2)設(shè)置tableView的style為UITableViewStyleGrouped,并且執(zhí)行代理方法heightForFooterInSection返回0.01,取消沒用的footer行。推薦第二種方法實現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內(nèi)容