`
zeng7960983
  • 浏览: 44600 次
  • 性别: 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学习资料下载的网址

    在iOS学习的过程中,掌握各种资源和工具的获取途径是非常重要的,因为这可以帮助开发者迅速找到所需的教程、代码示例以及文档,从而提升学习效率。以下是一些关于iOS学习资料下载的网址,涵盖了数据保存、游戏开发...

    ios加载图片内存暴涨解决方法

    本篇文章将深入探讨如何解决"ios加载图片内存暴涨"的问题,主要介绍三种策略:第一种是使用UIKit的`setImage`方法,第二种是利用苹果官方推荐的分片比例裁剪方式,最后是采用CATiledLayer进行优化。 1. **UIKit的...

    cisco2600 IOS 故障解决方案

    解决方法通常是通过TFTP服务器重新加载正确的IOS映像,或者检查NVRAM中的配置是否正确。 2. **配置错误**:配置文件中的语法错误可能导致路由器无法执行命令。此时,需要仔细检查配置文件,修正语法错误,并用...

    Swift编程实战 iOS应用开发实例及完整解决方案

    Swift编程实战:iOS应用开发实例及完整解决方案是针对苹果平台应用程序开发的一本深入实践的教程。...通过学习书中的实例和解决方案,开发者能够提升自己的Swift编程技能,从而开发出高质量的iOS应用。

    iOS 通讯录及tableViewCell中多音字的解决办法demo

    "iOS 通讯录及tableViewCell中多音字的解决办法demo" 提供了一个解决方案,它允许开发者获取手机通讯录并实现支持多音字的搜索排序功能。 首先,我们要了解iOS中访问通讯录的基本步骤。这通常涉及到使用Contacts...

    ios资料,学习资料,基础资料

    7. **多线程**:GCD(Grand Central Dispatch)和Operation Queues是iOS中的多线程解决方案,了解它们可以帮助优化应用性能。 8. **通知与代理**:理解NSNotification和Delegate模式,它们是iOS中组件间通信的重要...

    Swift-编-程-实-战-iOS应用开发实例及完整解决方案.

    本资料《Swift编程实战:iOS应用开发实例及完整解决方案》旨在帮助开发者深入理解Swift语言并运用到实际iOS应用开发中,提供全面的解决方案。 一、Swift基础语法 Swift语言以其简洁明了的语法著称,它摒弃了Cocoa中...

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

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

    iOS逆向开发常见问题的解决方案.docx

    在进行逆向工程时,开发者可能会遇到各种问题,本文将针对这些常见问题提供解决方案。 一、进入安全模式 安全模式是iOS系统的一种特殊运行状态,它允许用户在不加载第三方插件(tweak)的情况下启动设备,以排除tweak...

    ios设计模式学习实例

    在iOS开发中,设计模式是解决常见编程问题的模板,它们是经过时间验证的解决方案,可以提高代码的可读性、可维护性和可扩展性。本实例“ios设计模式学习实例”聚焦于Cocoa框架中的设计模式应用,下面将详细阐述其中...

    IOS应用开发常见错误与解决方案

    以上是对"iOS应用开发常见错误与解决方案"的一些基本阐述,实际开发中还会遇到更多具体问题,如资源管理、权限请求、多语言支持等。通过不断学习和实践,开发者可以更好地应对这些挑战,提升应用的质量和用户体验。

    ios开发当中常用遇到的问题和解决方法的收集.zip

    以上只是iOS开发中部分常见问题及解决策略,实际开发中可能会遇到更多具体问题。持续学习、实践和查阅官方文档是解决问题的关键。同时,参与社区讨论、参考开源项目,以及利用各种开发者资源,都能帮助提高开发技能...

    研发中心Java前端安卓iOS经典面试问题及面试流程

    【研发中心Java前端安卓iOS经典面试问题及面试流程】 面试流程主要分为三个环节:自我介绍、面试官提问和应聘者提问。整个过程旨在全面评估应聘者的专业技能、项目管理能力、沟通协作水平、职业素养和自我提升意识...

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

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

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

    本篇文章将深入探讨Swift在iOS环境下进行机器学习和NLP的解决方案。 1. **Core ML框架** Core ML是Apple为iOS、macOS、watchOS和tvOS提供的原生机器学习框架。它支持多种模型格式,包括Keras、TensorFlow、Caffe2...

    ios 中文开发文档

    在开发过程中,调试是解决问题的关键步骤。Xcode的内置调试工具,如Breakpoint、Console、Instruments等,可以帮助开发者定位和修复问题。学会使用这些工具,可以有效提升开发效率。 最后,应用发布前的测试和审核...

    ios开发详解markdown格式

    - **Grand Central Dispatch (GCD)**:GCD是一个多核编程的解决方案,可以帮助开发者优化应用性能,使其能够高效地处理多个任务。 #### 五、最佳实践 - **架构模式**:推荐使用MVC (Model-View-Controller) 或 ...

    iOS学习课件

    标题中提到的“iOS学习课件”表明这是一套针对iOS平台的学习材料。iOS是苹果公司为其移动设备推出的操作系统,包括iPhone、iPad和iPod Touch等。这套课件的目标受众是希望学习iOS开发的用户,特别是那些希望通过...

Global site tag (gtag.js) - Google Analytics