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

ios开发之某些知识点总结

2012-09-28 13:35 429 查看
将NSString字符串去掉前后空格:

NSString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]





获取颜色的值:
UIColor *uicolor = [UIColor redColor];

CGColorRef color = [uicolor CGColor];

int numComponents = CGColorGetNumberOfComponents(color);

if (numComponents >= 3)

{

const CGFloat *tmComponents = CGColorGetComponents(color);

red = tmComponents[0];

green = tmComponents[1];

blue = tmComponents[2];

alpha = tmComponents[3];



产生随机数(0-1之间):

(float)(1+arc4random()% 99)/100





读取一个url返回数据:

- (NSString *) urlString:(NSString *)value{

NSURL *url = [NSURL URLWithString:value];

NSData *data = [NSData dataWithContentsOfURL:url];

//解决中文乱码,用GBK

NSStringEncoding enc =

CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];

return retStr;

}

NSArray数组的比较器:

由于此方法是c方法,所以应该写再@end后面或者@implementation前面。

如果写在@implementation前面的话,就不需要声明了,如果写在@end前面的话,得在头文件声明

或者@implementation前面声明此方法。

方法:

NSInteger intSort(id num1, id num2, void *context)

{

int v1 = [num1 intValue];

int v2 = [num2 intValue];

if (v1 < v2)

return NSOrderedAscending;

else if (v1 > v2)

return NSOrderedDescending;

else

return NSOrderedSame;

}

调用:

NSArray *sortedArray;

sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];

手工绑定按钮单击事件:

- (void)addTarget:(id)target action:(SEL)action forControlEvents:

(UIControlEvents)controlEvents;



创建一个plist文件:

NSMutableDictionary *currencyDictionary = [[NSMutableDictionary alloc] init];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *path=[paths objectAtIndex:0];

NSString *fileName=[path stringByAppendingPathComponent:@"currency.plist"];

[currencyDictionary writeToFile:fileName atomically:YES];

添加动画代码:

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES];

[self.view removeFromSuperview];
[UIView commitAnimations]

navigationItem添加leftBarButtonItem

UIBarButtonItem *uibar1 = [[UIBarButtonItem alloc] initWithCustomView:controllerName];

self.navigationItem.rightBarButtonItem = uibar1;

[uibar1 release];

UITabBarController添加TabBarItem





切换view的两种方式:

1.presentModalViewController: animated: And
dismissModalViewControllerAnimated:

(注:

缺点:此切换方法将取代整个大view.例如:tabBarController就能被取代。

优点:此切换方法可以没有NavigationController的支持

)

SecondController *second = [[SecondController alloc] init];

[self presentModalViewController:second animated:YES];

[self dismissModalViewControllerAnimated:YES];

2.pushViewController: animated: And
popViewControllerAnimated:

(注:

缺点:此切换方法必须有NavigationController的支持

优点:此切换方法不能取代整个大view.例如:tabBarController就不能被取代。

)

ThirdController *third = [[ThirdController alloc] init];

[self.navigationController pushViewController:third animated:YES];

[self.navigationController popViewControllerAnimated:YES];

消息提示框使用:





文件进行操作:

// 获取当前目录下得Currency.plist文件路径

NSString *locationPath = [[NSBundle mainBundle] pathForResource:@"Currency" ofType:@"plist"];

// 获取沙盒得路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *strCopyPath = [paths objectAtIndex:0];

// 将路径和取得得文件名组合成一个新路径

NSString *strPath = [strCopyPath stringByAppendingPathComponent:@"Currency.plist"];

// 文件管理

NSFileManager *man = [NSFileManager defaultManager];

NSError *error = nil ;

// 开始复制

[man copyItemAtPath:locationPath toPath:strPath error:&error];

[man release];

// 获取strCopyPath路径下的文件数组

NSArray *array = [man contentsOfDirectoryAtPath:strCopyPath error:nil];

[array count];

调用GPS位置:

导入#import <CoreLocation/CoreLocation.h>

CLLocationManager *clLocationManager = [[CLLocationManager alloc] init];

[clLocationManager setDesiredAccuracy:kCLLocationAccuracyBest];

[clLocationManager setDelegate:self]; // deldegate

[clLocationManager startUpdatingLocation];

[clLocationManager release];

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

[manager stopUpdatingLocation]; // 停止执行此方法

newLocation.coordinate.longitude; // 获取当前的经度

newLocation.coordinate.latitude; // 获取当前的纬度

}

获取UUID的值:

CFUUIDRef uuidObj = CFUUIDCreate(nil);

NSString *uuidString = (NSString *)CFUUIDCreateString(nil, uuidObj);

CFRelease(uuidObj); // uuidString就是唯一得了

[uuidString release];

ico图标有弧线:



例如这种,系统默认的是带ico图标中间带弧线。

不加弧线的方法:

在****-info.plist中添加一项:Icon already includes gloss effects 然后value的多选筐勾选住。

ico图标大小:

1.iPhone -- 57*57

2.iPhone4 -114*114

3.iPad --72*72

#pragma mark 获得时间戳

- (NSString *)_generateTimestamp

return [NSString stringWithFormat:@"%d", time(NULL)];

#pragma mark 获得随时字符串

- (NSString *)_generateNonce {

CFUUIDRef theUUID = CFUUIDCreate(NULL);

CFStringRef string = CFUUIDCreateString(NULL, theUUID);

NSMakeCollectable(theUUID);

return (NSString *)string;

}

#pragma mark textView控件编辑完后键盘隐藏

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

if([text isEqualToString:@"n"]) {

[textView resignFirstResponder];

return NO;

}

return YES;

}

#pragma mark iphone 4 摄像头是前后切换

#import <AVFoundation/AVFoundation.h>

// Switching between front and back cameras

- (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position

{

NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];

for ( AVCaptureDevice *device in devices )

if ( device.position == position )

return device;

return nil;

}

- (void)swapFrontAndBackCameras {

// Assume the session is already running

NSArray *inputs = self.session.inputs;

for ( AVCaptureDeviceInput *input in inputs ) {

AVCaptureDevice *device = input.device;

if ( [device hasMediaType:AVMediaTypeVideo] ) {

AVCaptureDevicePosition position = device.position;

AVCaptureDevice *newCamera = nil;

AVCaptureDeviceInput *newInput = nil;

if (position == AVCaptureDevicePositionFront)

newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack];

else

newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront];

newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil];

// beginConfiguration ensures that pending changes are not applied immediately

[self.session beginConfiguration];

[self.session removeInput:input];

[self.session addInput:newInput];

// Changes take effect once the outermost commitConfiguration is invoked.

[self.session commitConfiguration];

break;

}

}

}

# 存储选择的图片到沙盒中

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSData *imageData = UIImagePNGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage]);

CFUUIDRef uuidObj = CFUUIDCreate(nil);

NSString *uuidString = (NSString *)CFUUIDCreateString(nil, uuidObj);

CFRelease(uuidObj);

self.pAddress = [[pathArray objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",uuidString]];

[imageData writeToFile:self.pAddress atomically:YES ];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: