小编laz*_*rev的帖子

UIBarButtonItem外观setTitleTextAttributes不影响UIControlStateDisabled状态

我们的设计师让我为禁用的UIBarButtonItems文本使用特定颜色.我用来实现这个代码:

NSDictionary* textAttributes = [NSDictionary dictionaryWithObject: [UIColor blueColor]
                                                           forKey: UITextAttributeTextColor];

[[UIBarButtonItem appearance] setTitleTextAttributes: textAttributes
                                            forState: UIControlStateDisabled];
Run Code Online (Sandbox Code Playgroud)

但它没有改变文本属性.

我已尝试使用Normal状态的代码,尝试使用setBackgroundImage为UIControlStateDisabled按钮添加背景,并且所有thouse实验都能正常工作.但是这个单一的组合:setTitleTextAttributes和UIControlStateDisabled没有做任何事情.

谷歌没有给我任何关于这个特定组合的相关答案.

有没有人知道改变禁用的UIBarButtonItem的颜色的其他方法或使setTitleTextAttributes适用于diabled项目的方法?

appearance uibarbuttonitem uibarbuttonitemstyle ios5

16
推荐指数
1
解决办法
6757
查看次数

从未调用过iTunes Connect订阅状态URL

我们需要服务器接收有关订阅状态更改的通知.为此,我们按照https://help.apple.com/itunes-connect/developer/#/dev0067a330b的说明进行操作.

我们的服务器支持App Transport Security(ATS)协议.它已通过此服务https://apptransport.info/进行了测试.所以所有要求似乎都得到了满足.

我们将目标网址输入"订阅状态网址"字段.但是在我们的沙箱中启动和过期订阅后,我们还没有收到指定地址的请求(GET,POST,PUT).

有没有办法解决这类问题?

itunesconnect storekit in-app-purchase

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

Swift 2中明确的老式错误处理

Apple在Swift 2中引入了新的错误处理方式

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html#//apple_ref/doc/uid/TP40014216-CH7-ID10

我正在使用AFNetoworking v2.x的项目,其中AFHTTPRequestSerializer有2个选择器:

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                             URLString:(NSString *)URLString
                            parameters:(id)parameters DEPRECATED_ATTRIBUTE;

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                             URLString:(NSString *)URLString
                            parameters:(id)parameters
                                 error:(NSError * __autoreleasing *)error;
Run Code Online (Sandbox Code Playgroud)

第一个被弃用,但第二个被Swift 2编译器自动转换为第一个签名.现在不允许使用老式方法:

var error: NSError?
let request = self!.operationManager.requestSerializer.requestWithMethod(method, URLString: url?.absoluteString, parameters: params, error: error)
Run Code Online (Sandbox Code Playgroud)

给我一个编译时错误:

Cannot convert value of type 'NSError?' to expected argument type '()'
Run Code Online (Sandbox Code Playgroud)

但是全新的表示法将选择器与错误处理减少到没有它的弃用变体.

do {
    let request = try
    self!.operationManager.requestSerializer.requestWithMethod(method, URLString: url?.absoluteString, parameters: params)
} catch let error as NSError {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

Swift 2中的最佳实践是什么来解决这个问题?在这种情况下有没有办法指定某个选择器?

UPD:关于Swift 2功能的更精确链接成为我问题的原因.https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html#//apple_ref/doc/uid/TP40014216-CH7-ID10

ios swift2

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

WKWebView无法正确处理"Set-Cookie"标头

我在我的项目中使用WKWebView来实现基于Web的授权UI.我使用[NSHTTPCookieStorage sharedHTTPCookieStorage]来保留整个应用程序的用户会话cookie,并在WKWebView重定向到我们的后端页面时保持用户身份验证.

问题是,在这种情况下,看起来WKWebView会忽略其他域的"Set-Cookie"标头.例如:

设置身份验证过程的初始请求:

GET /api2/providers/misfit/start/ HTTP/1.1
Host: api.welltory.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Connection: keep-alive
Proxy-Connection: keep-alive
Cookie: csrftoken=haF3PX9l6VB9DrTJTNEQvsjsAiMZTYNC;sessionid=txo4fhez18vl6mvjuwlelph1uyn1pkau
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
X-CSRFToken: haF3PX9l6VB9DrTJTNEQvsjsAiMZTYNC
Referer: https://api.welltory.com/api2/api/version/
Accept-Language: ru
Run Code Online (Sandbox Code Playgroud)

此请求的结果是重定向到目标服务登录页面,我们在其中列出了以下请求:

GET /auth/dialog/authorize?scope=public+birthday+email+tracking+session+sleeps&state=NdhVfDpcCTfjCkuEbgnoj0E4s8pnw6wv&client_id=ZkwJzk9QvaEkzL4M&response_type=code&redirect_uri=https%3A%2F%2Fapi.welltory.com%2Fapi2%2Fproviders%2Fmisfit%2Ffinish%2F%3Fredirect_state%3DNdhVfDpcCTfjCkuEbgnoj0E4s8pnw6wv HTTP/1.1
Host: api.misfitwearables.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
X-CSRFToken: haF3PX9l6VB9DrTJTNEQvsjsAiMZTYNC
Connection: keep-alive
Proxy-Connection: keep-alive
Cookie: csrftoken=haF3PX9l6VB9DrTJTNEQvsjsAiMZTYNC;sessionid=txo4fhez18vl6mvjuwlelph1uyn1pkau
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
Accept-Language: ru
Referer: https://api.welltory.com/api2/api/version/
Accept-Encoding: gzip, deflate

HTTP/1.1 302 Moved …
Run Code Online (Sandbox Code Playgroud)

ios wkwebview nshttpcookiestorage

6
推荐指数
0
解决办法
1381
查看次数

核心位置在CLVisit监控打开时跳过用户移动

我正在处理的应用程序记录了用户花费大部分时间的地方的信息.核心位置的访问监控绝对满足了位置信息的所有要求.

在测试此应用程序时,我们的QA工程师发现了Core Location因未知原因错过了Visits的证据.这不是定位精度低的结果.核心位置开始跳过之前注册的位置没有任何问题.

为了清楚起见,我们已经开始测试了.我在他的手机上安装了我们的应用程序和示例应用程序:https://github.com/steveschauer/TestCLVisit

经过3天的测试,我们比较了我们的应用程序,示例应用程序中的位置以及来自设置 - >隐私 - >位置服务 - >系统服务 - >常用位置的信息.

来自所有来源的信息是平等的.所以我们可以说这不是我们的应用程序的问题.

但是,虽然第一天注册的所有地点都是正确的,但第二天和第三天的许多地点都被遗漏了.只有少数人注册了.

访问监控是否正常?这种跳过的原因是什么?有没有人对访问监控有负面或积极的体验?

core-location cllocationmanager ios

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

在触摸模式下无法启动iPhone X闪存

我在火炬模式下运行iPhone X闪存时遇到问题.

返回选择AVCaptureDeviceTypeBuiltInTelephotoCamera作为捕获设备:

com.apple.avfoundation.avcapturedevice.built-in_video:2' -
AVCaptureDeviceTypeBuiltInTelephotoCamera
Run Code Online (Sandbox Code Playgroud)

检查触摸模式可用性后:

[self.captureDevice isTorchModeSupported:AVCaptureTorchModeOn]
Run Code Online (Sandbox Code Playgroud)

我正试图用闪光灯将闪光灯切换到火炬模式

[self.captureDevice lockForConfiguration:nil];
BOOL result = [self.captureDevice setTorchModeOnWithLevel:1 error:&error];
[self.captureDevice unlockForConfiguration];
Run Code Online (Sandbox Code Playgroud)

此通话成功.结果==是和错误==无.但闪光灯闪烁一次然后熄灭.

我自己在iPhone X上看到了这种行为,并且有报告显示iPhone 8和iPhone 8 Plus用户的行为相同.有些用户说在更新到iOS 11.1后出现此问题.但我自己无法用iPhone 8重现它.

有任何想法如何修复或调试此问题?

以下列出的应用中的完整代码段:

// Retrieve the back camera
    if ([AVCaptureDeviceDiscoverySession class]) {
        DDLogDebug(@"Search camera with AVCaptureDeviceDiscoverySession");
        AVCaptureDevice* camera =
        [AVCaptureDeviceDiscoverySession
         discoverySessionWithDeviceTypes: @[AVCaptureDeviceTypeBuiltInTelephotoCamera]
         mediaType:AVMediaTypeVideo
         position:AVCaptureDevicePositionBack].devices.firstObject;

        if (!camera) {
            camera = [AVCaptureDeviceDiscoverySession
                      discoverySessionWithDeviceTypes: @[AVCaptureDeviceTypeBuiltInTelephotoCamera]
                      mediaType:AVMediaTypeVideo
                      position:AVCaptureDevicePositionBack].devices.firstObject;
        }
        DDLogDebug(@"Did find %@ camera", camera);
        self.captureDevice = camera;
    } else {
        DDLogDebug(@"Haven't found camera device with AVCaptureDeviceDiscoverySession");
    } …
Run Code Online (Sandbox Code Playgroud)

camera objective-c avfoundation ios flashlight

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