您的位置:首页 > 移动开发 > IOS开发

iOS开发中遇到的问题整理 (二)

2014-11-25 14:38 615 查看
21、HSB颜色方法??
答:+ (UIColor *)colorWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha;

22、iOS学习之在ARC项目中使用非ARC文件 ?
答:在TARGETS-Bulid Phares-Compile Sources中找到非ARC的文件,双击,在弹出的框中添
加 -fno-objc-arc

PS:如果项目建立时未使用ARC,想将其改为ARC,可以在building setting中修改

在Building Setting中搜索auto reference

将Objective-C Automatic Reference Counting一行设置为YES即可

23、如何设置全局变量?
答:extern jw_i_SinaSDK * sinaObject ; (.h )
jw_i_SinaSDK * sinaObject = nil; (.m )

24、Xcode5.1删除了xib效果依然在?

25、如何通过UIImagePickerControllerView 来获取照片的信息(地理位置、时间等)?
答:需要导入的两个类库:#import <AssetsLibrary/AssetsLibrary.h>
#import <ImageIO/ImageIO.h>
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
if(picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary){
//UIImage *image= [info objectForKey:UIImagePickerControllerOriginalImage];

NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL
resultBlock:^(ALAsset *asset) {
NSDictionary* imageMetadata = [[NSMutableDictionary alloc] initWithDictionary:asset.defaultRepresentation.metadata];
NSDictionary *GPSDict=[imageMetadata objectForKey:(NSString*)kCGImagePropertyGPSDictionary];
NSLog(@"%@",GPSDict);
NSLog(@"%@",imageMetadata);
/* GPSDict 里面即是照片的GPS信息,具体可以输出看看*/
}
failureBlock:^(NSError *error) {
}];
}
}

26、用isEqualToString:该方法可能无效??
答:字典中有可能存放的不是NSString ,而是NSNumber

27、IOS中类和对象还有,nil/Nil/NULL的区别??
答:
nil:指向oc中对象的空指针
Nil:指向oc中类的空指针
NULL:指向其他类型的空指针,如一个c类型的内存指针
NSNull:在集合对象中,表示空值的对象

nil和NULL从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我的理解为nil是将对象设置为空,而NULL是将基本类型设置为空的。而且我们对于nil调用方法,不会产生crash或者抛出异常。
http://blog.sina.com.cn/s/blog_5fb39f910101akm1.html

28、self.NavigationController 跳转视图方法??
答:http://blog.163.com/juan_19886/blog/static/27830110201361280468/

跳转到上一层

[self.navigationController popViewControllerAnimated:YES];

跳转到根视图

[self.navigationController popToRootViewControllerAnimated:YES];

跳转到指定视图

[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -2)] animated:YES];

29、bool 值的判读规范写法??
答:如果是指针型,就这样比较
if(p==NULL)
if(p!=NULL)

整型
if(i==3)
if(i!=3)

bool型
if(b)
if(!b)

30、随机数生成??
答:/article/2014878.html
int i = arc4random() % 5 ;
arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成

31、iOS经纬度偏移解决 ???
答:http://my.oschina.net/gamecubategc1/blog/148592

32、UITableView headView和head的灵活运用??
答:见团游商城首页
当UITableViewStylePlain 设为该样式,head可以在向上滑动的时候悬浮在最上面

33、如何通过Xib自定义UITableViewCell ???
答:http://blog.163.com/zhou_li12/blog/static/184980311201302435453497/
NSString *identifier = @"mycell";
UITableViewCell *cell = [tView dequeueReusableCellWithIdentifier: identifier];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil] lastObject];
}
return cell;
注:xib中得设置其属性Identifier,假设设置为“mycell”

34、如何设置cell之间的间隔?
答:方法一,cell底部加一个和背景色一样的视图;(推荐)
方法二,创建空白cell

35、如何设置Cell上面的选择按钮?
答:通过设置数据源,然后刷新数据

36、为何构建的URL在地址栏输入有值返回,但是程序中没有 ??
答:程序中传入的参数需要用NSUTF8编码,方法为:stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

37、数组排序(描述排序法)??
答: _dataSourceArray = [_dataSourceArray mutableCopy];
NSSortDescriptor *sortDescriptor=[[NSSortDescriptor alloc] initWithKey:@"IsDefault" ascending:NO];//@“IsDefault”是对象属性
[_dataSourceArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

38、为何根据服务端返回的数据做判断,不跳入内容里面?
答:返回的类型跟你判断的类型不一样,需要转换

39、如何让一个事件隔一段时间再发生?
答: NSDate *nowTime = [NSDate date];
if (!lastTime) {
lastTime = nowTime;
}
NSTimeInterval timeInterval = [nowTime timeIntervalSinceDate:lastTime];
if (timeInterval > 3.) {
lastTime = nowTime;
}else{
return;
}

40、如何增加Button的点击热区?
答:重写Button以下方法:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
CGRect bounds = self.bounds;
//若原热区小于44x44,则放大热区,否则保持原大小不变
CGFloat widthDelta = MAX(44.0 - bounds.size.width, 0);
CGFloat heightDelta = MAX(44.0 - bounds.size.height, 0);
bounds = CGRectInset(bounds, -0.5 * widthDelta, -0.5 * heightDelta);
return CGRectContainsPoint(bounds, point);
}
http://itony.me/129.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: