小编Ste*_*her的帖子

我的应用程序"包含加密"吗?

我是第一次上传二进制文件.iTunes Connect问我:

出口法律要求对包含加密的产品进行适当的出口授权.
不遵守规定可能会导致严厉的处罚.
更多信息,请点击这里.
您的产品是否包含加密?

我用https://,但只用NSURLConnectionUIWebView.

我读到这个是我的应用程序没有"包含加密",但我想知道这是否在任何地方拼写."严厉处罚"听起来并不令人愉快,所以"我认为这是对的"有点粗略......权威的答案会更好.

谢谢.

iphone encryption app-store

344
推荐指数
13
解决办法
18万
查看次数

NSInteger的NSLog/printf说明符?

A NSInteger在32位平台上为32位,在64位平台上为64位.是否有一个NSLog总是匹配大小的说明符NSInteger

建立

  • Xcode 3.2.5
  • llvm 1.6编译器(这很重要; gcc不这样做)
  • GCC_WARN_TYPECHECK_CALLS_TO_PRINTF 打开

这让我有些悲伤:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    @autoreleasepool {
        NSInteger i = 0;
        NSLog(@"%d", i);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

对于32位代码,我需要说明%d符.但是,如果我使用说明%d符,我在编译64位时会收到警告,建议我使用%ld.

如果我使用%ld匹配64位大小,编译32位代码时,我会收到警告,建议我使用%d.

如何一次修复这两个警告?是否有我可以使用的说明符?

这也影响[NSString stringWithFormat:][[NSString alloc] initWithFormat:].

cocoa objective-c nslog nsinteger 32bit-64bit

126
推荐指数
1
解决办法
7万
查看次数

xcodebuild:模拟器还是设备?

如何指定xcodebuild(命令行工具)是否要为模拟器或设备构建?

iphone xcode xcodebuild ios

63
推荐指数
1
解决办法
5万
查看次数

如何将NSRange存储在NSMutableArray或其他容器中?

这就是我想要做的事情:

NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *
Run Code Online (Sandbox Code Playgroud)

使用布尔值,我会使用这样的代码:

[a addObject: [NSNumber numberWithBool: YES]];
Run Code Online (Sandbox Code Playgroud)

或者用整数:

[a addObject: [NSNumber numberWithInteger: 3]];
Run Code Online (Sandbox Code Playgroud)

那么什么是等同于NSRange?我真的不想做的是创建我自己的子类NSObject来完成这个.当然苹果已经提供了一种方式吗?

iphone cocoa cocoa-touch nsobject nsrange

58
推荐指数
3
解决办法
2万
查看次数

使用NSArray指定otherButtonTitles?

UIAlertSheet的构造函数将otherButtonTitles参数作为varg列表.我想指定NSArray中的其他按钮标题.这可能吗?

即我必须这样做:

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                  delegate: self
                                  cancelButtonTitle: cancelString
                                  destructiveButtonTitle: nil
                                  otherButtonTitles: button1Title, button2Title, nil];
Run Code Online (Sandbox Code Playgroud)

但由于我在运行时生成可用按钮列表,我真的想要这样的东西:

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                       delegate: self
                              cancelButtonTitle: cancelString
                         destructiveButtonTitle: nil
                              otherButtonTitles: otherButtonTitles];
Run Code Online (Sandbox Code Playgroud)

现在,我想我需要单独拨打一个initWithTitle:项目,2个项目和3个项目.像这样:

if ( [titles count] == 1 ) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self
                                cancelButtonTitle: cancelString
                           destructiveButtonTitle: nil
                                otherButtonTitles: [titles objectAtIndex: 0], nil];
} else if ( [titles count] == 2) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self …
Run Code Online (Sandbox Code Playgroud)

iphone nsarray uialertsheet

54
推荐指数
3
解决办法
2万
查看次数

IOS StoryBoard来自TableCell的多个Segue

嗨,我有一个故事板,能够在单击表格单元格时显示详细视图.我想添加额外的功能,以便根据我点击的单元格显示不同的视图控制器.我尝试从同一个单元格拖动两个segue但它不允许它.

我的想法是,我将从单元格中有两个segue,每个指向不同的视图,然后调用所需的segue:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSInteger row = indexPath.row;
    NSLog(@"Selected Item :-) %@",[NSString stringWithFormat:@"%@",[myData objectAtIndex:row]]);
    if(row %2 ==0){
        NSLog(@"Even");        
        [self performSegueWithIdentifier:@"ShowSecondIndex" sender:self];
    }else{
        [self performSegueWithIdentifier:@"ShowSelectedMovie" sender:self];
        NSLog(@"Odd");

    }

} 
Run Code Online (Sandbox Code Playgroud)

然后我会在prepareForSegue中处理segue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

    NSLog(@"Prepare For Segue ID:%@",[segue identifier]);

    if([[segue identifier] isEqualToString:@"ShowSelectedMovie"]){
        Tab2_ItemViewController *vc = [segue destinationViewController];
        NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row];
        NSLog(@"Selected Index: %d",selectedIndex);
        [vc setSelectedItem: [NSString stringWithFormat:@"%@",[myData objectAtIndex:selectedIndex]]];
        NSLog(@"String Value: %@",[NSString stringWithFormat:@"%@",[myData objectAtIndex:selectedIndex]]);
        [vc setSelectedIndex:selectedIndex];


    }else if([[segue identifier] isEqualToString:@"ShowSecondIndex"]){

        NSLog(@"Viewing Second Index");
    } …
Run Code Online (Sandbox Code Playgroud)

storyboard ios segue

48
推荐指数
2
解决办法
3万
查看次数

在iPhone上摇晃视觉效果(不摇动设备)

在登录失败时,我宁愿避免显示警报,它太短暂了.显示警报然后在登录屏幕上的某处显示文本似乎是重复.

因此,当用户输入错误的用户ID和密码(如Mac登录屏幕)时,我希望以图形方式摇动我的登录视图.

任何人都知道是否有办法解决这个问题,或者对我可以使用的其他效果有任何建议吗?

iphone core-animation

44
推荐指数
5
解决办法
2万
查看次数

使用NSURLConnection正确处理重定向

出于这个目的,我将假装原始网址http://host/form和新网址https://host/form.(请注意,在我发送之前,这两个URL都是安全的.但是,非安全到安全似乎是一个方便的重定向来测试它.)

我正在使用NSURLConnection重定向我来访问Web API .基本上,我想把我刚刚提交的所有内容都http://hostaform重新提交给https://host/form.我认为这将是默认行为,但看起来身体在重定向中丢失了.

所以我认为我需要处理代表的connection:willSendRequest:redirectResponse:事件NSURLConnection并重新附加身体.问题是这个消息看起来很糟糕.我可以在这个方法上找到的唯一信息是NSURLConnection类参考,这不是很有用.除其他外,它包括:

redirectResponse:导致重定向的URL响应.如果由于在重定向处理中涉及委托而未发送此方法,则可能为零.

我不确定这意味着什么.结合初始willSendRequest:调用,我认为这是willSendRequest:在重定向响应之前,即使是我的初始请求也会发送的方法.那是对的吗?

所以我已经为我的委托添加了代码以保留正常的时间,并添加了这个willSendRequest:处理程序:

- (NSURLRequest *)connection: (NSURLConnection *)inConnection
             willSendRequest: (NSURLRequest *)inRequest
            redirectResponse: (NSURLResponse *)inRedirectResponse;
{
    if (inRedirectResponse) {
        NSMutableURLRequest *r = [[inRequest mutableCopy] autorelease];
        [r setURL: [inRedirectResponse URL]];
        [r setHTTPBody: body];
        return r;
    } else {
        return inRequest;
    }
}
Run Code Online (Sandbox Code Playgroud)

它不起作用.但我甚至不确定这是否是正确的方法.这对我来说似乎过于苛刻.我该怎么办?这记录在哪里?到目前为止,我发现Apple的文档或使用Google没有任何用处.

(这是在iPhone上,虽然这些类似乎没有太大区别.)

iphone cocoa redirect cocoa-touch nsurlconnection

25
推荐指数
2
解决办法
3万
查看次数

UISearchDisplayController更改行高

我已将UITableView行高在Interface Builder中设置为54.0.我有一个UISearchDisplayController观点.当用户点击其中的搜索栏时,表格会正确调整大小.但是,当他们开始键入(并且实际进行搜索)时,行高度会降低.在搜索点击取消之前,它会出错.

我在Apple的网站上找不到关于此行为的文档.

我已尝试在UISearchDisplayDelegate委托调用中设置行高.这可能是正确的方法,但我不知道细节,也无法使其发挥作用.

我也尝试过实施- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;.这很有效,但是我在这个列表中有数以千计的条目,并且无法获得性能.

解决这个问题的正确方法是什么?

iphone uitableview uisearchdisplaycontroller

25
推荐指数
3
解决办法
8022
查看次数

如果我不再使用MKMapView,为什么我会崩溃?

我有一个MKMapView.有时在我的视图控制器被解雇后,我会得到一个EXC_BAD_ACCESS.

我打开了NSSZombies,它看起来像是MKMapView代表 - 我的视图控制器!- 正在被调用,尽管释放了子类MKMapViewUIViewController子类.我已经检查了,我的记忆管理是正确的.

这是怎么回事?

iphone memory-management mapkit mkmapview

24
推荐指数
2
解决办法
4967
查看次数