全系列文章索引:
IOS开发问题索引(一)
IOS开发问题索引(二)
IOS开发问题索引(三)
IOS开发问题索引(四)
IOS开发问题索引(五)
IOS开发问题索引(六)
IOS开发问题索引(七)
IOS开发问题索引(八)
IOS开发问题索引(九)
1 【SQL】附加数据库5120错误(拒绝访问)处理方法
http://jingyan.baidu.com/article/c1a3101e8b34c2de656debbe.html
右键需要附加的数据库文件,弹出属性对话框,选择安全标签页。找到Authenticated Users用户名。如未找到,进行Authenticated Users用户名的添加。
2 【UI】'-[UITableViewControllerloadView] loaded the "XXX" nib but didn't get a UITableView.'
'-[UITableViewController loadView] loaded the"XXX" nib but didn't get a UITableView.'
解决方法:在头文件中,将所继承的父类UITableViewController 改成 UIViewController。
3 linux/mac vi命令详解
linux/mac vi命令详解
http://blog.csdn.net/youngkingyj/article/details/22713965
4 IOS获取最新设备型号方法
方法:
#import "sys/utsname.h”
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
http://blog.csdn.net/luoyeffcs/article/details/18610839
5 objective-c ASCII NSString转换
objective-c ASCII NSString转换--分享
// NSString to ASCII
NSString *string = @"A";
int asciiCode = [string characterAtIndex: 0]; //65
//ASCII to NSString
int asciiCode = 65;
NSString *string =[NSString stringWithFormat: @"%c",asciiCode]; //A
来源http://blog.sina.com.cn/s/blog_63aaf4690100w981.html
中文字符ASCII码和NSString相互转换
http://www.2cto.com/kf/201309/243443.html
6 【UI】UIButton文字居左显示
UIButton *btn = [[UIButton alloc] init];
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
7 【网络】AFNetwork2.0在请求时报错code=-1016和3840
http://blog.csdn.net/huifeidexin_1/article/details/38844535
在进行网络请求时出现-1016是因为只支持text/json,application/json,text/javascript,你可以添加text/html ,一劳永逸的方法是在AFURLResponseSerialization.h里面搜索self.acceptableContentTypes,然后在里面添加@"text/html",@"text/plain"。这样就可以解决-1016的错误了,但是随之而来的是3840错误。
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.
(Cocoa error 3840.)" (JSON text did not start with array or object and
option to allow fragments not set.) UserInfo=0x9152780 {NSDebugDescription=JSON
text did not start with array or object and option to allow fragments not set.}
你会发现出现此错误
怎么办呢?
添加如下语句 就可以解决问题了
manger.requestSerializer = [AFHTTPRequestSerializer serializer];
manger.responseSerializer = [AFHTTPResponseSerializer serializer];
是否成功了,成功了吧!但是新问题出现了——编码问题。如果服务器返回a的话,你收到的是<61>,这样怎么能行呢。当你用浏览器去请求时发现响应头Content-Type: text/html;charset=UTF-8是这样的,但是afNetwork 请求是Content-Type:text/plain;charset=ISO-8859-1。为什么pc浏览器访问的和用afNetwork访问的不一致呢? 接着发现其实添加如下二句即可,也不用去修改AFURLResponseSerialization.h 里面的东西
manger.requestSerializer = [AFHTTPRequestSerializer serializer];
manger.responseSerializer = [AFHTTPResponseSerializer serializer];
把收到的responseObject 转换一下编码就OK了。
NSData*doubi= responseObject;
NSString *shabi = [[NSString alloc]initWithData: doubi encoding: NSUTF8StringEncoding];
8 【JSON】NSDictionary与NSString互转
NSString *str = [dataDic JSONRepresentation];
NSDictionary *resultDic = [htmStr JSONValue];
9 【UI】在UIImageView中添加子按钮无法响应事件问题
问题分析:
UIImageView默认是不接受事件响应的userInteractionEnabled=NO,所以用户点击操作在该控件即被截停了,无法往子控件中传递,故需要开启userInteractionEnabled属性为true,以使事件往下传递。
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
_scrollView.delegate = self;
// scrollView.userInteractionEnabled = YES;
[self.view addSubview: _scrollView];
_activityIndicatorView = [MDViewUtility createActivityIndicatorViewInView: self.view];
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];
[backImageView setImage: [UIImage imageNamed: @"MyCenter_BackgroundImage"]];
//这一句很重要,不然事件无法往下传递
backImageView.userInteractionEnabled = YES;
[_scrollView addSubview: backImageView];
_myAccountView = [[MDMyAccountView alloc] initWithFrame: CGRectMake(self.view.frame.size.width/2 - 50, 0, 100, 200) WithVM: _myAccountVM];
[backImageView addSubview: _myAccountView];
[_myAccountView.myScoreButton addTarget: self action: @selector(myScoreButtonClicked:) forControlEvents: UIControlEventTouchUpInside];
UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(myScoreButtonClicked:)];
singleTap1.delegate = self;
[_myAccountView.myPhotoImageView setUserInteractionEnabled: YES];
[_myAccountView.myPhotoImageView addGestureRecognizer: singleTap1];
UITapGestureRecognizer *singleTap2 = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(myScoreButtonClicked:)];
singleTap2.delegate = self;
[_myAccountView.myNeedLoginLabel setUserInteractionEnabled: YES];
[_myAccountView.myNeedLoginLabel addGestureRecognizer: singleTap2];
10 【UI】在二级页面中隐藏Tabbar
在VC初始化时设置属性:
self.hidesBottomBarWhenPushed=YES;
11 Cocoa/Cocoa.hfile not found
Cocoa/Cocoa.h file not found
创建OC类时,有时OC类会自动包含了文件头#import
不过,所有用到NS***的都要修改为UI***
12 JSONKITisa错误的解决办法
转载:http://blog.csdn.net/hemuhan/article/details/17753453
在开发IOS的时候,好多第三方库使用JSONKIT这个库,在IOS6.0以上的版本编译的话,会提示 Semantic Issue错误。
错误显示:direct access to Objective-C's isa is deprecated in favorof object_getClass()
看资料说是 使用 array->isa 这个弃用的函数,网上查大部分的资料都说要使用object_getClass 和object_setClass来更正。
看到Bee中Demo没有更改这个函数,花费很长时间终于整明白了如果使IOS不报这个错误
从项目中搜索 Direct usage of 'isa' 将 YES(treat as error) 改为NO 就可以了
13 【URL】创建并保存Cookie的方法
NSString*cookieString = [NSString stringWithString: [headers objectForKey: @"Cookie"]];
NSMutableDictionary *cookieProperties = [[NSMutableDictionary alloc]init];
[cookieProperties setValue: cookieString forKey:NSHTTPCookieValue];
[cookieProperties setValue:@"QQCookie"forKey:NSHTTPCookieName];
[cookieProperties setValue:@".QQ.com"forKey:NSHTTPCookieDomain];
[cookieProperties setValue:[NSDate dateWithTimeIntervalSinceNow: 60*60] forKey: NSHTTPCookieExpires];
[cookieProperties setValue:@"/" forKey: NSHTTPCookiePath];
NSHTTPCookie *newcookie = [[NSHTTPCookie alloc] initWithProperties: cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie: newcookie];
http://ios-iphone.diandian.com/post/2011-09-20/5175529
14 NSDictionary判断空
字典里某个键key的值可能是空数组~~~那这个[dic objectForkey:key]是什么?
你猜会是[NSNull null]?
也可能不是~~~但至少是个空数组。
[[dic objectForkey:key] count]会告诉我们结果。
下面的代码使用了NSNull来判断字典某个键的值是否为空。但是这种判断方法,似乎对于空集合类不大奏效。
id object = nil;
// 判断对象不为空
if(object) {
}
// 判断对象为空
if(object == nil) {
}
// 数组初始化,空值结束
NSArray *array = [[NSArray alloc] initWithObjects:@"First", @"Second", nil];
// 判断数组元素是否为空
NSString *element = [array objectAtIndex:2];
if((NSNull *)element == [NSNull null]) {
}
// 判断字典对象的元素是否为空
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"iPhone", @"First", @"iPad", @"Second", nil];
NSString *value = [dictionary objectForKey:@"First"];
if((NSNull *)value == [NSNull null]) {
}
15 NSDate格式化输出
NSDate*date = [NSDate dateWithTimeIntervalSince1970: [[MDMyUserInfoEntity shareInstance] birthday]];
NSDateFormatter*dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
//用[NSDate date]可以获取系统当前时间
NSString *currentDateStr = [dateFormatter stringFromDate: date];
16 AFNetworking请求HTTPS时发生code=-1012的错误
AFNetworking 2.0在请求HTTPS资源的时候,总是发生如下错误:
self.securityPolicy = [AFSecurityPolicy policyWithPinningMode: AFSSLPinningModeNone];
//解决“Error Domain=NSURLErrorDomain Code=-1012
"The operation couldn’t be completed.”的问题,AFNetworking 2.0默认在检查SSL证书的时候比较严格self.securityPolicy.allowInvalidCertificates = YES;
解决办法就是允许使用无效的证书。
17 字符串NSString中去掉空格
在ios开发中 stringByTrimmingCharactersInSet函数可以用来去掉字符串中的任意字符。
例如:
NSString *string1 = @" 11 1 ";
NSString *string2 = [string1 stringByTrimmingCharactersInSet [NSCharacterSet whitespaceAndNewlineCharacterSet]];
这个时候string2的结果是"11 1"
(去处空格的时候只是去除字符串中最前和最后的字符。)
【iOS】字符串NSString中去掉空格
http://blog.csdn.net/chenyong05314/article/details/8752654
NSString过滤字符串
http://blog.sina.com.cn/s/blog_5d2698930100wxvw.html
18 AFNetworking请求未发出去返回一堆html代码
网络请求中,域名指向的IP地址错了
19 MBProgressHud显示多行文本
+(void) showToastInView:(UIView *)view WithText:(NSString *) text WithDelay:(NSTimeInterval)delay
{
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo: view animated: YES];
hud.mode = MBProgressHUDModeText;
// hud.labelText = text;
hud.detailsLabelText=text;
hud.detailsLabelFont = [UIFont fontWithName:@"Helvetica" size:16];
hud.detailsLabelColor = [UIColor whiteColor];
hud.margin = 10.f;
hud.yOffset = 0;
hud.alpha = 0.7;
hud.removeFromSuperViewOnHide = YES;
[hudhide:YES afterDelay:delay];
}
20 nestedpush animation can result in corrupted navigation bar
nested push animation can result in corrupted navigation bar.
Finishing up a navigation transition in an unexpected state.Navigation Bar subview tree might get corrupted.
【iphone】返回崩溃:nested pop animation canresult in corrupted navigation bar nested pop animation can re
http://blog.csdn.net/lengshengren/article/details/12616217