`
zeng7960983
  • 浏览: 42903 次
  • 性别: Icon_minigender_1
  • 来自: 邵阳
社区版块
存档分类
最新评论

iOS 学习中问题及解决方案

    博客分类:
  • ios
阅读更多

iOS 开发错误 及 解决方法 ------------------------------------

 

Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super. 解决方法:去掉选择报错得xlb文件。 在xcode 中去掉 auto layout

---------------------------

loaded the "YddHotelBlogViewController" nib but the view outlet was not set. (null) 解决方法:由于 xlb控件 没有和ViewCtroller关联。导致的。 关联上就ok

--------------

UITableView 添加tableFooterView: 解决方法:self.hotelBlogTableView.tableFooterView = self.footerView;

 

UIButton 创建方法 解决方法:UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];

--------------------------------

关于iOS http请求 解决方法: NSString *post = [NSString stringWithFormat:@"loginname=%@&loginpassword=%@&loginType=%@&appType=%@&deviceUuid=%@",userName,md5Password,@"IOS",@"APP-18",@"fe50812e1e5ea5b98ed90e3e620f8fbc16bb363f"]; NSLog(@"post:%@",post); NSString *urlStr=@"http://api.yododo.com/mobile/v2/saleLogin.ydd"; NSLog(@"urlStr=%@",urlStr); //将NSSrring格式的参数转换格式为NSData,POST提交必须用NSData数据。 NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; NSLog(@"postLength=%@",postLength); NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url]; //设置请求头 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; //post提交 [request setHTTPMethod:@"POST”]; //get提交 方式 [request setHTTPMethod:@"GET”]; //数据长度 [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; //传输数据 [request setHTTPBody:postData]; //定义 NSHTTPURLResponse* urlResponse = nil; NSError *error = [[NSError alloc] init]; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; //将NSData类型的返回值转换成NSString类型 NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"user login check result:%@",result); [self alertView:@"登录结果" message:result];

---------------------------------

UITableViewCell 使用: 解决方法:创建xlb继承UITableViewCell。 在cellForRowAtIndexPath中创建使用

-------------------------

 视频播放: 解决方法: 导入视频框架:#import <MediaPlayer/MediaPlayer.h> //NSString *fileName=[NSString stringWithFormat:@""]; //视频文件路径 //NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp4"]; //视频URL NSURL *url = [NSURL fileURLWithPath:@"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"]; //视频播放对象 MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL:url]; //设置播放源 类型 movie.movieSourceType = MPMovieSourceTypeFile; //自动播放 movie.shouldAutoplay = YES; //控制器 样式 movie.controlStyle = MPMovieControlStyleNone; //有图像 有声音。 [movie.view setFrame:CGRectMake(30, 210, 250, 350)]; //添加 当前页中 [self.view addSubview:movie.view]; //预播放 [movie prepareToPlay]; //播放结束时 增加通知 NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter]; [notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:movie ]; [movie play];

 

---------------------

Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:

解决方法: http://blog.csdn.net/azhou_hui/article/details/18312047

  -----------------------------------

ios 数据库操作:项目使用的时sqlite

http://blog.csdn.net/zhuzhihai1988/article/details/7878093  sqllite语法

  在项目运行时发现一直都找不到数据库表。 后面了解到是ios的虚拟机缓存了sqlite文件。找到ios的虚拟机目录删除打包文件。 之后重新运行。问题解决。 

//sqlite3_stmt 类似于 jdbc操作的statement对象

sqlite3_stmt *get_statement = nil;

 //查询 根据时间搜索历史城市表记录取前5条   

NSString *sqlString = [NSString stringWithFormat:@"select *  from SearchHistoryPlace order by dateTime desc limit 0,5"];

    const char *sql = [sqlString UTF8String];

    

    NSLog(@"result:%d",sqlite3_prepare_v2(database, sql, -1, &get_statement, NULL));

    //执行准备sql

    if (sqlite3_prepare_v2(database, sql, -1, &get_statement, NULL) != SQLITE_OK){

sqlite3_reset(get_statement);

return nil;

}

    

    NSMutableArray *cities = [[NSMutableArray alloc]init];

     //从statement

while (sqlite3_step(get_statement) == SQLITE_ROW){

        YddSearchHistoryPlace *disCity = [[YddSearchHistoryPlace alloc]init];

        //sqlite3_column_text 查询text类型的列值

        disCity.placeId = [NSString stringWithCString:(char *)sqlite3_column_text(get_statement, 0) encoding:NSUTF8StringEncoding];

        disCity.cityName = [NSString stringWithCString:(char *)sqlite3_column_text(get_statement, 1) encoding:NSUTF8StringEncoding];

        

        [cities addObject:disCity];

}

sqlite3_reset(get_statement);

 

return cities;

 

//插入

 sqlite3_stmt *insert_statement = nil;

    const char *sql = [[NSString stringWithFormat:@"INSERT INTO SearchHistoryPlace VALUES ('%@','%@','%@')",yddDistributionCity.placeId,yddDistributionCity.cityName,yddDistributionCity.dateTime]UTF8String];

    if(sqlite3_prepare_v2(database, sql, -1, &insert_statement, nil) != SQLITE_OK){

    }

    sqlite3_step(insert_statement);

    sqlite3_reset(insert_statement);

 

//更新

 sqlite3_stmt *insert_statement = nil;

    const char *sql = [[NSString stringWithFormat:@"INSERT INTO SearchHistoryPlace VALUES ('%@','%@','%@')",yddDistributionCity.placeId,yddDistributionCity.cityName,yddDistributionCity.dateTime]UTF8String];

    if(sqlite3_prepare_v2(database, sql, -1, &insert_statement, nil) != SQLITE_OK){

    }

    sqlite3_step(insert_statement);

    sqlite3_reset(insert_statement);

 //查看数据库是否存在该表

 select count(*) from sqlite_master where type='table' and name = '%@'

//创建表

CREATE TABLE IF NOT EXISTS SearchHistoryPlace

--------------------------------

//自定义背景色
self.duoduoquanBtn.backgroundColor = [NSStringUtil colorWithHexString:@"#FEFEE8"];

//字符串转化为 转换为UIColor

(UIColor *) colorWithHexString: (NSString *)color

{

    NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]] uppercaseString];

    

    // String should be 6 or 8 characters

    if ([cString length] < 6) {

        return [UIColor clearColor];

    }

    

    // strip 0X if it appears

    if ([cString hasPrefix:@"0X"])

        cString = [cString substringFromIndex:2];

    if ([cString hasPrefix:@"#"])

        cString = [cString substringFromIndex:1];

    if ([cString length] != 6)

        return [UIColor clearColor];

    

    // Separate into r, g, b substrings

    NSRange range;

    range.location = 0;

    range.length = 2;

    

    //r

    NSString *rString = [cString substringWithRange:range];

    

    //g

    range.location = 2;

    NSString *gString = [cString substringWithRange:range];

    

    //b

    range.location = 4;

    NSString *bString = [cString substringWithRange:range];

    

    // Scan values

    unsigned int r, g, b;

    [[NSScannerscannerWithString:rString] scanHexInt:&r];

    [[NSScannerscannerWithString:gString] scanHexInt:&g];

    [[NSScannerscannerWithString:bString] scanHexInt:&b];

    

    return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];

 

}

 ------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    在学习iOS中遇见的问题及解决方案.zip

    通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、...

    学习ios(必看经典)牛人40天精通iOS开发的学习方法

    这是一套从一个对iOS开发感兴趣的学员到iOS...通过本系列课程的学习,希望使一个对iOS开发感兴趣,想从事iOS开发的学员,成为一名真正iOS开发人员,iOS从业者,iOS技术大牛,最重要的是学会解决开发中遇到困难的方法。

    swift-iOS的机器学习AINLP的解决方案列表

    iOS的机器学习、AI、NLP的解决方案列表,Machine Learning for iOS

    iOS 逆向工程学习

    从iOS系统架构、文件类型等逆向理论出发,逐一讲解Class-dump、Theos、Cycript、IDA、GDB等最常用逆向工具的使用方法,进而分析使用这些工具时的思考方式和碰到问题时的解决思路,最后以社交应用消息拦截、iOS电话...

    微信小程序iOS下拉白屏晃动问题解决方案

    这篇文章主要介绍了微信小程序iOS下拉白屏晃动问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 感觉ios的小程序每个页面都可以下拉出现白屏 ...

    基于Objective-C的QMUI iOS UI开发解决方案设计源码

    这是一个基于Objective-C的QMUI iOS UI开发解决方案设计,使用Objective-C、C、MATLAB和Python语言开发,包含...该项目是QMUI iOS,旨在提高项目UI开发效率的解决方案,适合用于个人学习和实践Objective-C的开发技术。

    iOS 应用逆向工程 分析与实战

    dump、Theos、Cycript、IDA、GDB等最常用逆向工具的使用方法,进而分析使用这些工具时的思考方式和碰到问题时的解决思路,最后以社交应用消息拦截、iOS电话相关操作等4个极具代表性的实例总结iOS应用逆向工程在实战...

    一个针对iOS模块化开发的解决方案 包含如何进行路由式、本地模块间交互的实现

    1、资源内容:一个针对iOS模块化开发的解决方案。包含如何进行路由式、本地模块间交互的实现 2、适用人群:计算机,电子信息工程、数学等专业的学习者,作为“参考资料”参考学习使用。 3、解压说明:本资源需要电脑...

    关于iOS 11不能定位问题的解决方法

    最近在开发中遇到一个问题,后来发现是苹果新增一个权限,自己可查,下面这篇文章主要给大家介绍了关于iOS 11不能定位问题的解决方法,文中介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起来一起学习...

    iOS利用运行时处理闪退

    iOS利用运行时解决闪退问题,可以学习下。有动态交换,方法添加,数组绑定

    iOS开发之导航栏各种右滑返回失效的解决方法汇总

    众所周知iOS 的几乎全部页面都是需要右滑返回的,否则用户体验会大打折扣,但是在开发过程中经常会碰到某些页面右滑返回失效的情况,下面记录一下各种情况下右滑返回失效的解决方法。 下面话不多说了,来随着小编...

    Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法

    主要给大家介绍了关于Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    iOS中WKWebView白屏问题的分析与解决

    最近在工作中遇到了WKWebView白屏的问题,所以这篇文章主要给大家介绍了关于iOS中WKWebView白屏问题的分析与解决方法,文中通过示例代码介绍的非常详细,对同样遇到这个问题的朋友具有一定的参考学习价值,需要的...

    ios-tips是ios解决方法的收集

    作者coolnameismy,源码ios-tips,ios-tips是ios开发当中常用遇到的问题和解决方法的收集,包括ios和swif。 一共包括4个部分 0_Foundation :基础 1_UIKit :UIKit和界面相关 2_ThirdParty :第三方控件 3_Other :其他...

    iOS项目开发键盘弹出遮挡输入框问题解决方案

    大家在用IOS开发项目的时候,经常出现键盘弹出遮挡输入框问题,小编给大家整理的这个问题的处理方法,一起学习下。

    IFMShare是一个iOS客户端应用内分享的界面、功能一体化解决方案.zip

    IFMShare是一个iOS客户端应用内分享的界面、功能一体化解决方案,使用简单、优雅,界面和功能高度可定制化。分享功能直接调用iOS系统内预制分享功能,无需去各种繁杂的社会化分享平台注册账号、无需下载导入各种SDK...

Global site tag (gtag.js) - Google Analytics