zoukankan      html  css  js  c++  java
  • iOS开发之十万个为什么<1>

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

    假设文章对您有所帮助。欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 

    我要捐赠: 点击捐赠

    Cocos2d-X源代码下载:点我传送

    游戏官方下载:http://dwz.cn/RwTjl

    游戏视频预览:http://dwz.cn/RzHHd

    游戏开发博客:http://dwz.cn/RzJzI

    游戏源代码传送:http://dwz.cn/Nret1


    1、设置 ImagePicker 的大小

    ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用。

    解决的方法是将ImagePicker “包括”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController :

    UIViewController *containerController = [[UIViewController alloc] init];

    containerController.contentSizeForViewInPopover = CGSizeMake(600,self.view.frame.size.height);

     [containerController.viewaddSubview:_imagePicker.view];

    _popController= [[UIPopoverController alloc] initWithContentViewController:containerController];

    CGPoint p=[self.view convertPoint:button.center

          fromView:sender.superview];

    [_popController presentPopoverFromRect:(CGRect){p,CGSizeZero}

          inView:self.view

          permittedArrowDirections:UIPopoverArrowDirectionAny

           animated:YES];

    [_imagePicker.view setFrame:containerController.view.frame];// 非常重要

    注意,popover的宽度最多600。

    此外。_imagePicker 每次 presentPopoverFromRect 之前都必须 init一次。否则显示位置不对。


    2、上传文件里文文件名称乱码问题

    在iOSclient将文件名称用URL Encode编码。然后在服务端用URL Decode解码。

    client:

    NSStringEncodingenc=NSUTF8StringEncoding;

    [request setData:datawithFileName [filename stringByAddingPercentEscapesUsingEncoding:enc]

         andContentType:@"application/octet-stream" forKey:key];

    服务端:

    String filename=request.getParameter(“upload_file”);

    filename=URLDecode.decode(s,”utf-8”);


    3、Mac 64 bit Device

    有时从SVN更新project后。Scheme会显示为Mac 64 bit Device,而且不同意执行程序。

    这时仅仅须要又一次设置一下Target的DeploymentTarget就好(设置为模拟器或调试设备)。


    4、去除调试程序的NSLog

    编译參数Optimize Level依据不同的版本号设置。

    比如对于Debug版本号是None。对于Release版本号是Fastest,Smallest。

    这样,我们能够依据这个參数来又一次定义NSLog函数:

    #ifndef __OPTIMIZE__

    #define NSLog(...)NSLog(__VA_ARGS__)

    #else

    #define NSLog(...) {}

    #endif

     

    5、警告:no previous prototye for function

    依据c规范。 假设函数没有參数。使用void作为函数參数。

    函数声明应使用 “void functionA(void);”,而不能是”void functionA();”。


    6、数组排序

    方法一:

    - (NSComparisonResult)compare:(Person *)otherObject {

        return [self.birthDatecompare:otherObject.birthDate];

    }

    NSArray *sortedArray;

    sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)]; 


    方法二: 

    NSSortDescriptor *sortDescriptor;

    sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"birthDate"

                                                 ascending:YES] autorelease];

    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

    NSArray *sortedArray;

    sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];

     

    方法三( 10.6+):

    NSArray *sortedArray;

    sortedArray = [drinkDetails sortedArrayUsingComparator:^(id a, id b) {

        NSDate *first =[(Person*)a birthDate];

        NSDate *second =[(Person*)b birthDate];

        return [firstcompare:second];

    }];


    7、Xcode 4的build文件夹在哪里?

    Xcode 4 做了很多改变。你将不能找到build文件夹,你也无法找到Products文件组。

    那么它把项目编译后生成的可执行文件放在哪里了呢?

    答案就是“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}/{PROJECT_NAME}.app”文件夹。


    8、警告:no rule to process file

    Xcode试图侦測每一种文件的类型。

    当它觉得文件属于“源文件”类型(比方.js文件),

    总是试图将它加到 Compile Sources中并试图编译。

    解决这个警告的办法是。把这类文件从Build Phases的 Compile Sources移到 Copy Bundle Resources中。


    9、警告:'initWithFrame:reuseIdentifier:'is deprecated

    该方法在兴许版本号中将被抛弃。

    请使用

    -  initWithStyle:reuseIdentifier:


    10、itms-services不工作

    itms-services 被apple/iphone识别为一个特殊的字眼。它会校验provisioning profile中指定的证书并进行安装。

    在安装这个.ipa文件前,要校验profisioning profile,这会连接到 "ax.init.itunes.apple.com"和 "ocsp.apple.com"。

    假设你处于intranet中,请检查是否可訪问上述地址。

    假设不能,你将无法使用OTA来安装应用程序。要求iOS 4.0以上。

    注:上述地址不能訪问并不会影响安装。可是iOS会在执行时通过上述地址检查证书是否合法,假设安装是合法的,iOS会缓存检查结果(7天)。


    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

    假设文章对您有所帮助,欢迎给作者捐赠。支持郝萌主。捐赠数额任意,重在心意^_^ 

    我要捐赠: 点击捐赠

    Cocos2d-X源代码下载:点我传送

    游戏官方下载:http://dwz.cn/RwTjl

    游戏视频预览:http://dwz.cn/RzHHd

    游戏开发博客:http://dwz.cn/RzJzI

    游戏源代码传送:http://dwz.cn/Nret1

  • 相关阅读:
    Fortran编译器之一GUN Fortran安装(Windows XP)
    c++动态绑定的技术实现
    c++标准库比较
    java array
    java常用的基础容器
    mac sublime text 3 add ctags plugin
    git fetch
    查看远程分支的log
    git删除分支
    detached HEAD state
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7067361.html
Copyright © 2011-2022 走看看