小编Sat*_*ran的帖子

dispatch_async中的异步URL请求

我正在尝试在特定函数中实现异步URL请求,我希望所有这些请求完成然后执行特定操作但操作先于请求,即在请求完成之前调用它.

dispatch_queue_t fetchQ = dispatch_queue_create("Featured Doc Downloader", NULL);
        dispatch_async(fetchQ, ^{
            [self myAsyncMultipleURLRequestFunction];
            dispatch_sync(dispatch_get_main_queue(), ^{
                [self updateUIFunction];
            });
        });

-(void)myAsyncMultipleURLRequestFunction
   {
    for (int i=0; i<count; i++) 
     {
     NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];          
     }
   }
Run Code Online (Sandbox Code Playgroud)

现在在myAsyncMultipleURLRequestFunction完成所有请求之前调用updateUIFunction.也尝试使用NSOperaitonQueue,但不能做我真正想要的.

[_operationQ addOperationWithBlock: ^ {
     for (int i=0; i<count; i++)
      {
     NSURLConnection *loginConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];          
      }
    }

[[NSOperationQueue mainQueue] addOperationWithBlock: ^ {
         // updating UI
         [self updateUIFunction];
    }];
}];
Run Code Online (Sandbox Code Playgroud)

我知道这很简单,但我的时间不多了,任何帮助都表示赞赏.

nsoperation nsoperationqueue grand-central-dispatch ios

6
推荐指数
1
解决办法
1743
查看次数

如何向Swift数组添加元组值?

我有阵列:

var myArray:[(Int,Int)] = []
Run Code Online (Sandbox Code Playgroud)

但是当我通过以下方式增加价值时:

myArray.append((1,2))
Run Code Online (Sandbox Code Playgroud)

编译器显示错误警告.我的语法有什么问题?

arrays swift

6
推荐指数
1
解决办法
908
查看次数

UIDatePicker自定义

我已经将UIDatePicker定制到一个级别,我将它添加到UIAlertView.

在此输入图像描述

但我在日期选择器的底部和顶部有一个黑色,如何删除它.我希望日期选择器整洁干净.

我用来实现这个目的的代码:

UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.frame=CGRectMake(20, 45.0, 240.0, 150.0);
datePicker.minimumDate=[NSDate date];

//Forget about this logic.

NSString *alertTitleString=@"";
if(self.presentingViewController !=nil)
{
    alertTitleString=@"Select Date and Time";
    [datePicker setDatePickerMode:UIDatePickerModeDateAndTime];
}
else
{
    alertTitleString=@"Select Time";
    [datePicker setDatePickerMode:UIDatePickerModeTime];

}
[datePicker setDate:[NSDate date]];

UIView *view = [[datePicker subviews] objectAtIndex:0];
[view setBackgroundColor:[UIColor clearColor]]; // hide the first and the last subviews
[[[view subviews] objectAtIndex:0] setHidden:YES];
[[[view subviews] lastObject] setHidden:YES];



 UIAlertView *eventStartDateAlert = [[UIAlertView alloc] initWithTitle:alertTitleString message:@"\n\n\n\n\n\n\n\n" delegate:self cancelButtonTitle:NSLocalizedString(@"OK", @"Ok") otherButtonTitles:nil];
eventStartDateAlert.delegate = self; …
Run Code Online (Sandbox Code Playgroud)

uidatepicker uialertview ios uidatepickermodetime

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

共享钥匙串数据的两个应用程序在 iOS 模拟器中运行良好,但在设备中不起作用

我正在尝试从具有相同标识符(相同配置文件)的另一个应用程序访问应用程序设置的钥匙串数据。我使用此链接来实现此目的。

钥匙串数据的保存正确发生,我得到以下语句的 errSecSuccess(在模拟器和设备中)

OSStatus status = SecItemAdd((CFDictionaryRef)dictionary, NULL);
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,但是当我尝试取回我的应用程序 A 保存在另一个应用程序 B 中的凭据时,它在模拟器和设备中的工作方式有所不同。

在 iOS 模拟器 6.1 中,以下语句的状态为“0”。

 OSStatus status = SecItemCopyMatching((CFDictionaryRef)searchDictionary, &foundDict);
Run Code Online (Sandbox Code Playgroud)

在任何 iOS 设备中,我的状态都是“-25300”。

我知道这些是安全框架中的错误代码:

//errSecSuccess                = 0,       /* No error. */
//errSecUnimplemented          = -4,      /* Function or operation not implemented. */
//errSecParam                  = -50,     /* One or more parameters passed to a function where not valid. */
//errSecAllocate               = -108,    /* Failed to allocate memory. */
//errSecNotAvailable           = -25291,  /* No keychain is available. You …
Run Code Online (Sandbox Code Playgroud)

keychain security-framework ios

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

如何在控制台中查看Firebase存储使用情况

我现在使用Firebase将近两个月用于我的应用程序生产,现在我在Spark计划已有一段时间,直到我获得用户群.我看到Spark定价允许每天1GB的下载量和5GB的总存储量,但在控制台上我无处可查看我现在已经用完了多少存储空间配额.这对很多用户来说非常重要,如果您显示数据库的使用信息,您也应该将其显示为存储.

firebase firebase-storage

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

更改SLComposeSheetConfigurationItem的色调/文本颜色

因此,在过去的两周里,我一直致力于我的GitHub回购https://github.com/satheeshwaran/iOS-8-Features-Demo我试图演示iOS 8中引入的Share扩展.我知道了我可以添加SLComposeSheetConfigurationItem到a的方式,SLComposeServiceViewController但我无法弄清楚如何更改色调或文本颜色SLComposeSheetConfigurationItem.

到目前为止我做了什么,

在此输入图像描述

在上图中看到我想将描述和My First Share设置为我选择的某种颜色,也可能是我想自定义字体或其他东西.我挖了一下SocialFramework但是却无法从中得到任何东西.

我在iPad上看到了Evernote的分享扩展,它看起来像这样, 在此输入图像描述

如果你看到底部有一个图标,文字颜色等也与导航栏的主题相匹配.

引用WWDC 2014关于扩展编程的演示,

SLComposeServiceViewController用于标准UI
UI/NSViewController用于自定义UI来到我的问题,

  1. 我可以自定义SLComposeServiceViewControllerSLComposeSheetConfigurationItem看起来像这样?
  2. 第二个问题是关于报价,可以默认SLComposeServiceViewController定制吗?或者我应该使用UIViewController子类来做我自己的UI.
  3. 如何让Evernote完成自定义UIViewController子类以复制行为或使用SLComposeServiceViewController(我不确定是否要问这个,但我想要答案)

ios ios8 ios8-share-extension ios8-extension

4
推荐指数
1
解决办法
3203
查看次数

在字典中处理字典(嵌套字典)

我有一个像as的字典dict1 = { 0 : 0, 1 : 1, 2 : { 0: 0, 1 : 1}}(它也有一个字典作为值).我想保持这些值的存储与某些修改检查目的相同.所以现在我将这个字典内容复制到另一个字典中dict2 = dict1.copy().现在我正在改变dict2喜欢的值{ 0 : -1, 1 : -2, 2: { 0 : -1, i : -2}}.现在的问题是我dict1的字典值也在变化{ 0 : 0, 1 : 1, 2:{ 0 : -1, 1 : -2}}.在这里你可以看到这个容易dict1的关键2值也随着dict2的关键2值而变化.

我应该如何复制dict2from,dict1所以如果更改dict2的key 2值不应该对dict1key = 2值产生影响?

python dictionary

3
推荐指数
1
解决办法
381
查看次数

UIAlertView自定义中的iOS 7 UIDatePicker

伙计们,我将到的UIDatePicker UIAlertView中像这样

在此输入图像描述

iOS 6及以下版本在iOS 7中很好用,就像这样

在此输入图像描述

任何想法为什么会这样?有没有更好的方法来做到这一点?.感谢任何帮助.

uidatepicker uialertview ios ios7

2
推荐指数
1
解决办法
5730
查看次数

从Worklight Adapter对HTTPS服务器进行Web服务调用 - javax.net.ssl.SSLPeerUnverifiedException:peer未通过身份验证

我试图从我的适配器点击基于REST的HTTPS服务,我的.xml文件看起来像这样,

<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>https</protocol>
            <domain>myco.company.com</domain>
            <port>443</port>    
            <!-- Following properties used by adapter's key manager for choosing specific certificate from key store  
            <sslCertificateAlias></sslCertificateAlias> 
            <sslCertificatePassword></sslCertificatePassword>
            -->     
        </connectionPolicy>
        <loadConstraints maxConcurrentConnectionsPerNode="2"/>
    </connectivity>
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外

Http request failed: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
Run Code Online (Sandbox Code Playgroud)

但是当我使用HTTP协议和不同的服务器IP地址时,一切正常.部署的服务器代码是相同的,服务似乎在浏览器上正常工作.我看到http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m5/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fadmin%2Ft_ibm_worklight_server_and_self-signed_certificates.html但是没有得到任何想法.任何帮助表示赞赏.

worklight-adapters worklight-server ibm-mobilefirst

2
推荐指数
1
解决办法
2356
查看次数

为什么我们在主线程上使用异步

在主线程以外的线程上更新 UI 是一个常见的错误,它可能导致错过 UI 更新、视觉缺陷、数据损坏和崩溃。

https://developer.apple.com/documentation/code_diagnostics/main_thread_checker

例子:

let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
   if let data = data {
      DispatchQueue.main.async { // Correct
         self.label.text = "\(data.count) bytes downloaded"
      }
   }
}
task.resume()
Run Code Online (Sandbox Code Playgroud)

我的问题从这里开始 - 当我们说.async意味着与.main. 有人可以解释我的问题吗?

grand-central-dispatch ios swift

2
推荐指数
1
解决办法
2383
查看次数