xcode 开发笔记

来源:互联网 发布:sql注入原理c 编辑:程序博客网 时间:2024/05/16 18:31
将NSString字符串去掉前后空格:
         NSString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]
[转载]xcode <wbr>开发小问题


获取颜色的值:
         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
[转载]xcode <wbr>开发小问题


读取一个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; [转载]xcode <wbr>开发小问题


创建一个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];

添加动画代码:
  1. [UIView beginAnimations:@"View Flip" context:nil];
  2. [UIView setAnimationDuration:1.25];
  3. [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
  4. [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES];
  5. [self.view removeFromSuperview];
  6. [UIView commitAnimations]

navigationItem添加leftBarButtonItem
         UIBarButtonItem *uibar1 = [[UIBarButtonItem alloc] initWithCustomView:controllerName];
         self.navigationItem.rightBarButtonItem = uibar1;
         [uibar1 release];


UITabBarController添加TabBarItem
[转载]xcode <wbr>开发小问题


切换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];

消息提示框使用:
[转载]xcode <wbr>开发小问题

文件进行操作:
             // 获取当前目录下得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图标有弧线:
           
[转载]xcode <wbr>开发小问题
            例如这种,系统默认的是带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 ];
原创粉丝点击