iOS開發(fā)中經(jīng)常踩的坑

1.XCode8的項目在xcode7運行報錯:

The document “ViewController.xib” requires Xcode 8.0 or later. This version does not support documents saved in the Xcode 8 format. Open this document with Xcode 8.0 or later.

有兩種方法解決這個問題:

1.你同事也升級Xcode8糊肤,比較推薦這種方式琴昆,應(yīng)該迎接改變氓鄙。

2.右擊XIB或SB文件 -> Open as -> Source Code馆揉,刪除xml文件中下面一行字段。

2.場景:tabbar左右pan手勢切換抖拦,其中一個VC是UIPageViewController升酣,這樣會導(dǎo)致到pageView的時候不能切換tabbar,如何禁掉pageVC切換呢态罪?

出于UIPageViewController和UItableView等產(chǎn)生手勢沖突噩茄,我們往往要禁用其翻頁手勢,代碼如下:

self.pageViewController.dataSource = nil;

網(wǎng)絡(luò)上搜到的重寫手勢等方法复颈,親測無效绩聘,所以給出這個最簡單粗暴的方法。

// tabbar的切換動畫(一般不用哦)

- (void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

CATransition *transition = [CATransition animation];

[transition setDuration:1];

[transition setType:@"fade"];

[self.tabBarController.view.layer addAnimation:transition forKey:nil];

}

// 解決帶有輪播圖的手勢沖突

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

if (touch.view.frame.origin.y<100){

return NO;

}

return YES;

}

//1耗啦,禁止.DS_store生成:

打開 “終端” 凿菩,復(fù)制黏貼下面的命令,回車執(zhí)行帜讲,重啟Mac即可生效衅谷。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

//2,恢復(fù).DS_store生成:

defaults delete com.apple.desktopservices DSDontWriteNetworkStores

3.FMDB根據(jù)條件查詢數(shù)據(jù)庫出現(xiàn)的錯誤:

解決辦法:

4.后臺數(shù)據(jù)中出現(xiàn)空格特殊字符:

問題:注意選項A...我竟然匹配不到這種字符, \r\n\t都不行

方案:中文全角空格...你想說什么...我轉(zhuǎn)了下...\u3000 ?已解決似将!

5.浮點型取整問題:

//Objective-C拓展了C,自然很多用法是和C一致的获黔。比如浮點數(shù)轉(zhuǎn)化成整數(shù),就有以下四種情況在验。

//1.簡單粗暴玷氏,直接轉(zhuǎn)化

float f = 1.5; int a; a = (int)f; NSLog("a = %d",a);

//輸出結(jié)果是1。(int)是強制類型轉(zhuǎn)化腋舌,丟棄浮點數(shù)的小數(shù)部分盏触。

//2.高斯函數(shù),向下取整

float f = 1.6; int a; a = floor(f); NSLog("a = %d",a);

//輸出結(jié)果是1。floor()方法是向下取整耻陕,類似于數(shù)學(xué)中的高斯函數(shù) [].取得不大于浮點數(shù)的最大整數(shù)拙徽,對于正數(shù)來說是舍棄浮點數(shù)部分,對于復(fù)數(shù)來說诗宣,舍棄浮點數(shù)部分后再減1.

//3.ceil函數(shù)膘怕,向上取整。

float f = 1.5; int a; a = ceil(f); NSLog("a = %d",a);

//輸出結(jié)果是2召庞。ceil()方法是向上取整岛心,取得不小于浮點數(shù)的最小整數(shù),對于正數(shù)來說是舍棄浮點數(shù)部分并加1篮灼,對于復(fù)數(shù)來說就是舍棄浮點數(shù)部分.

//4.通過強制類型轉(zhuǎn)換四舍五入忘古。

float f = 1.5; int a; a = (int)(f+0.5); NSLog("a = %d",a);

6.關(guān)于block傳值及數(shù)據(jù)同步總結(jié):

A B C三個界面間C界面修改內(nèi)容達到AB界面刷新最新的數(shù)據(jù)保持ABC數(shù)據(jù)同步:1.C到B可以用block回調(diào)傳值 2.B界面到A界面只需在B界面Back的時候發(fā)出拉取數(shù)據(jù)并刷新cell即可解決數(shù)據(jù)不同步現(xiàn)象。

//在iOS開發(fā)過程中, 我們可能會碰到一些系統(tǒng)方法棄用, weak诅诱、循環(huán)引用髓堪、不能執(zhí)行之類的警告。 有代碼潔癖的孩子們很想消除他們, 今天就讓我們來一次Fuck 警告D锏础干旁!

//首先學(xué)會基本的語句

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wdeprecated-declarations"

//這里寫出現(xiàn)警告的代碼

#pragma clang diagnostic pop? //這樣就消除了方法棄用的警告!

7.iOS8調(diào)用相機警告:

錯誤代碼:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or

snapshot after screen updates.

IOS8多了一個樣式UIModalPresentationOverCurrentContext炮沐,

IOS8中 presentViewController時請將控制器的modalPresentationStyle設(shè)置為 UIModalPresentationOverCurrentContext争群,問題解決!大年!

8.錯誤點:ENABLE_BITCODE錯誤設(shè)置(mrc下)

解決方法:

// 默認選中第一行

[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];

// 實現(xiàn)了選中第一行的方法

[self tableView:_mainIndustryTableView didSelectRowAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]];

例如:

// 默認下選中狀態(tài)

- (void)customAtIndex:(UITableView *)tableView

{

// 默認選中第一行

[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];

if ([tableView isEqual:_mainIndustryTableView]) {

[self tableView:tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]];

}

}

9.iOS headerview與tableview之間距離控制?

//view 作為 tableView 的 tableHeaderView换薄,單純的改變 view 的 frame 是無濟于事的,tableView? 不會大度到時刻適應(yīng)它的高度(以后 Apple 會不會改變就不知道了)翔试,

//所以轻要,如何告訴tableView 它的 tableHeaderView 已經(jīng)改變了?很簡單遏餐,就一句話(關(guān)鍵最后一句):

[webView sizeToFit];

CGRect newFrame = headerView.frame;

newFrame.size.height = newFrame.size.height + webView.frame.size.height;

headerView.frame = newFrame;

[self.tableView setTableHeaderView:headerView];

//這樣以后伦腐,效果就出來了。不過這種過度顯得有些生硬失都,能不能加一點點動畫柏蘑,讓它變得順眼一些呢?試試下面的代碼:

[self.tableView beginUpdates];

[self.tableView setTableHeaderView:headerView];

[self.tableView endUpdates];

10.cell 分割線不全:

-(void)viewDidLayoutSubviews {

if ([_listTableView respondsToSelector:@selector(setSeparatorInset:)]) {

[_listTableView setSeparatorInset:UIEdgeInsetsZero];

}

if ([_listTableView respondsToSelector:@selector(setLayoutMargins:)])? {

[_listTableView setLayoutMargins:UIEdgeInsetsZero];

}

}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

[cell setSeparatorInset:UIEdgeInsetsZero];

}

}

// 自繪分割線

- (void)drawRect:(CGRect)rect

{

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);

CGContextFillRect(context, rect);

CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0xE2/255.0f green:0xE2/255.0f blue:0xE2/255.0f alpha:1].CGColor);

CGContextStrokeRect(context, CGRectMake(0, rect.size.height - 1, rect.size.width, 1));

}

11.iOS7.0以后的UILabel會自動將Text行尾的空白字符全部去除粹庞,除了常見的半角空格(\0×20)和制表符(\t)之外咳焚,全角空格(\u3000)也被計算在內(nèi),甚至連多余的換行符(\r庞溜,\n)也被自動去除了革半。

這一點雖然方便直接將控件賦值和無需取值后再trim碑定,但是太過智能化了之后,往往不能滿足一些本可以簡單實現(xiàn)的需求又官。

需求1.使用添加\n方式將上下文本連續(xù)空兩行延刘,即實現(xiàn)文本的2倍行距。

iOS7.0之前解決辦法:在每個換行符后面添加一個空格

即如果要顯示為:

aaaaaaa

空行

空行

bbbbbb

使用以下格式進行文本賦值

lbl.text = @"aaaaaaa\n\u0020\n\u0020bbbbbb";

iOS7.0之后需要增加,不增加則無效

lbl.numberOfLines = 0;// 0表示行數(shù)不固定

lbl.lineBreakMode=UILineBreakModeWordWrap;//允許換行(可選)

需求2.在所有的UILabel的text后增加一個空格六敬,并使text右對齊碘赖。

iOS7.0之前解決辦法:直接在text后增加空格即可,即text在賦值前增加空格外构。

lbl.text = [NSStringstringWithFormat:@"%@%@","aaaaa","\u0020"];

iOS7.0之后需要重寫UILabel的drawTextInRect方法普泡,通過縮短默認文本繪制Rect的寬度半個字體寬度來實現(xiàn)。(當(dāng)然也可以在底部鋪一個view調(diào)整审编,暨簡單又高效)

具體實現(xiàn)代碼如下:

#import "MyLabel.h"

@implementation MyLabel

-(id) initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];

if(self){

return self;

}

}

-(void) drawTextInRect:(CGRect)rect {

//從將文本的繪制Rect寬度縮短半個字體寬度

//self.font.pointSize / 2

return [super drawTextInRect:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width - self.font.pointSize / 2, rect.size.height)];

}

@end

//附錄:

//UILabel會自動清除的空白字符(UNICODE)

\u0009 CHARACTER TABULATION

\u000A LINE FEED

\u000D CARRIAGE RETURN

\u0020 SPACE

\u0085 NEXT LINE

\u00A0 NBSP

\u1680 OGHAM SPACE MARK

\u180E MONGOLIAN VOWEL SEPARATOR

\u2000 EN QUAD

\u200A HAIR SPACE

\u200B ZERO WIDTH SPACE

\u2028 LINE SEPARATOR

\u2029 PARAGRAPH SEPARATOR

\u202F NARROW NO-BREAK SPACE

\u205F MEDIUM MATHEMATICAL SPACE

\u3000 IDEOGRAPHIC SPACE

12.監(jiān)聽UITextField的text的變化:

// 注冊監(jiān)聽

[[NSNotificationCenter defaultCenter]postNotificationName:UITextFieldTextDidChangeNotification object:nil];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(changeForKeyWord:) name:UITextFieldTextDidChangeNotification object:nil];

// 監(jiān)聽關(guān)鍵詞變化

- (void)changeForKeyWord:(NSNotification *)sender

{

// 關(guān)鍵詞改變時清除地區(qū)查詢條件紀錄

[[NSUserDefaults standardUserDefaults]setObject:@"0" forKey:@"proRow"];

[[NSUserDefaults standardUserDefaults]setObject:@"0" forKey:@"section"];

}

//監(jiān)聽UITextField的點擊事件

[[NSNotificationCenter defaultCenter]postNotificationName:UITextFieldTextDidBeginEditingNotification object:nil];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(enterEdited:) name:UITextFieldTextDidBeginEditingNotification object:nil];

- (void)enterEdited:(NSNotification *)sender

{

}

13.改變cell的選中顏色:

cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame];

cell.selectedBackgroundView.backgroundColor = COLOR_BACKGROUNDVIEW;

//不需要任何顏色可以這么設(shè)置:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

14.旋轉(zhuǎn)圖片:

#pragma mark ----- 更新按鈕動畫

- (void)rotate360DegreeWithImageViews:(UIImageView *)myViews{

CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];

rotationAnimation.duration = 1.0;

rotationAnimation.cumulative = YES;rotate360DegreeWithImageViews

rotationAnimation.repeatCount = 100000;

[myViews.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];

}

[myViews.layer removeAllAnimations]; // 停止

15.UIView的exclusiveTouch屬性:

通過設(shè)置[self setExclusiveTouch:YES];

可以達到同一界面上多個控件接受事件時的排他性撼班,從而避免一些問題。

//1. 設(shè)置的時候在ib里面記得選擇無邊框的垒酬,要不然隨便你設(shè)置砰嘁,都是無效的,也是坑死了伤溉。

_textBoxName.layer.borderWidth=1.0f;

_textBoxName.layer.borderColor=[UIColorcolorWithRed:0xbf/255.0fgreen:0xbf/255.0fblue:0xbf/255.0falpha:1].CGColor;

//2.在uitextfield 中文字最左邊距離左側(cè)邊框的距離

_textBoxName.leftView=[[UIViewalloc] initWithFrame:CGRectMake(0,0, 16,51)];

_textBoxName.leftViewMode=UITextFieldViewModeAlways;

16.當(dāng)你使用 UISearchController 在 UITableView 中實現(xiàn)搜索條般码,在搜索框已經(jīng)激活并推入新的 VC 的時候會發(fā)生搜索框重疊的情況:

解決辦法:那就是 definesPresentationContext 這個布爾值。

17.畫個曲線如何做呢乱顾?如圖:

UIView *myCustomView = [[UIView alloc]initWithFrame:CGRectMake(0, 204,kScreenWidth, 120)];

myCustomView.backgroundColor = [UIColor whiteColor];

[view addSubview:myCustomView];

UIBezierPath *bezierPath = [UIBezierPath bezierPath];

[bezierPath moveToPoint:CGPointMake(0,0)];

[bezierPath addCurveToPoint:CGPointMake(myCustomView.width, 0) controlPoint1:CGPointMake(0, 0) controlPoint2:CGPointMake(myCustomView.width/2, 40)];

[bezierPath addLineToPoint:CGPointMake(myCustomView.width, myCustomView.height)];

[bezierPath addLineToPoint:CGPointMake(0, myCustomView.height)];

[bezierPath closePath];

CAShapeLayer *shapLayer = [CAShapeLayer layer];

shapLayer.path = bezierPath.CGPath;

myCustomView.layer.mask = shapLayer;

myCustomView.layer.masksToBounds = YES;

18.有效解決刷新單個cell或者section閃一下的問題:

[UIView setAnimationsEnabled:NO];

[_listTable beginUpdates];

[_listTable reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationNone];

[_listTable endUpdates];

[UIView setAnimationsEnabled:YES];

19.保持imageView 圖片不變形:

_topImageView.contentMode = UIViewContentModeScaleAspectFit;

[__NSArrayI addObject:]: unrecognized selector sent to instance

//當(dāng)我創(chuàng)建了一個NSMutableArray 對象的時候

@property (nonatomic,copy)NSMutableArray *children;

//然后通過addObject運行就會報錯,[__NSArrayI addObject:]: unrecognized selector sent to instance

//解決方法:copy改成strong

20.Label后加小圖標:

NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ ",fields.title]];

// 添加表情

NSTextAttachment *attch = [[NSTextAttachment alloc] init];

// 表情圖片

attch.image = [UIImage imageNamed:@"newTopList"];

// 設(shè)置圖片大小

attch.bounds = CGRectMake(10, 0, 25, 14);

if ([fields.isnew boolValue]) {

// 創(chuàng)建帶有圖片的富文本

NSAttributedString *strings = [NSAttributedString attributedStringWithAttachment:attch];

[attri appendAttributedString:strings];

}

// 用label的attributedText屬性來使用富文本

_titleLabel.attributedText = attri;

21.狀態(tài)欄字體顏色及背景顏色調(diào)整:

UIView *statusBarView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 20)];

statusBarView.backgroundColor= [UIColor whiteColor];

[self.view addSubview:statusBarView];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];

22.xib加載不同尺寸的屏幕如何控制寬高宫静?

- (void)viewDidLoad {

[super viewDidLoad];

myView = [[MyView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 206)];

[self.view addSubview:myView];

}

- (void)viewDidLayoutSubviews {

[super viewDidLayoutSubviews];

//在這里計算尺寸

myView.myView.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 206);

}

// 或者修改如下:

UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth-48, 232)];//310

GCVipGroupView *groupView = [[GCVipGroupView alloc]initWithFrame:view.frame andCollect:NO];

groupView.delegate = self;

groupView.bigView.frame = view.frame;

[view addSubview:groupView];

23.我的位置(強制獲茸呔弧):

MKMapItem *mylocation = [MKMapItem mapItemForCurrentLocation];

// 當(dāng)前經(jīng)緯度

float currentLatitude = mylocation.placemark.location.coordinate.latitude;

float currentLongitude = mylocation.placemark.location.coordinate.longitude;

// 默認位置(模擬器測試要注釋掉才行)

[self setMapViewCenter:CLLocationCoordinate2DMake(currentLatitude, currentLongitude)];

24.比如彈框上放了scrollowView第一次彈出需要裁剪,滑動時需要顯示下面的內(nèi)容:

解決辦法:讓scrollowView的范圍跟父視圖同等高就解決了孤里!

25.去除多余cell不管用怎么辦:

self.searchResultTableView.tableFooterView = [[UIView alloc]init];

//或者加一個:? ? self.searchResultTableView.separatorStyle = UITableViewCellSeparatorStyleNone;

26.判斷頁面消失或出現(xiàn)時是push還是pop操作:

- (void)viewWillDisappear:(BOOL)animated {

NSArray *viewControllers = self.navigationController.viewControllers;//獲取當(dāng)前的視圖控制其

if (viewControllers.count > 1 && [viewControllers objectAtIndex:viewControllers.count-2] == self) {

//當(dāng)前視圖控制器在棧中伏伯,故為push操作

NSLog(@"push");

} else if ([viewControllers indexOfObject:self] == NSNotFound) {

//當(dāng)前視圖控制器不在棧中,故為pop操作

NSLog(@"pop");

}

}

27.運行環(huán)境問題:

A valid provisioning profile for this executable was not found.

解決問題所在:發(fā)布證書無法運行在真機上0仆唷K到痢!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虏等,一起剝皮案震驚了整個濱河市弄唧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霍衫,老刑警劉巖候引,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拉一,死亡現(xiàn)場離奇詭異贞谓,居然都是意外死亡,警方通過查閱死者的電腦和手機跷跪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麸俘,“玉大人辩稽,你說我怎么就攤上這事〈用模” “怎么了搂誉?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長静檬。 經(jīng)常有香客問我炭懊,道長,這世上最難降的妖魔是什么拂檩? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任侮腹,我火速辦了婚禮,結(jié)果婚禮上稻励,老公的妹妹穿的比我還像新娘父阻。我一直安慰自己,他們只是感情好望抽,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布加矛。 她就那樣靜靜地躺著,像睡著了一般煤篙。 火紅的嫁衣襯著肌膚如雪斟览。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天辑奈,我揣著相機與錄音苛茂,去河邊找鬼。 笑死鸠窗,一個胖子當(dāng)著我的面吹牛妓羊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稍计,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼躁绸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了臣嚣?” 一聲冷哼從身側(cè)響起净刮,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茧球,沒想到半個月后庭瑰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡抢埋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年弹灭,在試婚紗的時候發(fā)現(xiàn)自己被綠了督暂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡穷吮,死狀恐怖逻翁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捡鱼,我是刑警寧澤八回,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站驾诈,受9級特大地震影響缠诅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乍迄,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一管引、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闯两,春花似錦褥伴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至逊躁,卻和暖如春似踱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背志衣。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工屯援, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人念脯。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像弯淘,于是被迫代替她去往敵國和親绿店。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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