我们的设计师让我为禁用的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项目的方法?
我们需要服务器接收有关订阅状态更改的通知.为此,我们按照https://help.apple.com/itunes-connect/developer/#/dev0067a330b的说明进行操作.
我们的服务器支持App Transport Security(ATS)协议.它已通过此服务https://apptransport.info/进行了测试.所以所有要求似乎都得到了满足.
我们将目标网址输入"订阅状态网址"字段.但是在我们的沙箱中启动和过期订阅后,我们还没有收到指定地址的请求(GET,POST,PUT).
有没有办法解决这类问题?
Apple在Swift 2中引入了新的错误处理方式
我正在使用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
我在我的项目中使用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) 我正在处理的应用程序记录了用户花费大部分时间的地方的信息.核心位置的访问监控绝对满足了位置信息的所有要求.
在测试此应用程序时,我们的QA工程师发现了Core Location因未知原因错过了Visits的证据.这不是定位精度低的结果.核心位置开始跳过之前注册的位置没有任何问题.
为了清楚起见,我们已经开始测试了.我在他的手机上安装了我们的应用程序和示例应用程序:https://github.com/steveschauer/TestCLVisit
经过3天的测试,我们比较了我们的应用程序,示例应用程序中的位置以及来自设置 - >隐私 - >位置服务 - >系统服务 - >常用位置的信息.
来自所有来源的信息是平等的.所以我们可以说这不是我们的应用程序的问题.
但是,虽然第一天注册的所有地点都是正确的,但第二天和第三天的许多地点都被遗漏了.只有少数人注册了.
访问监控是否正常?这种跳过的原因是什么?有没有人对访问监控有负面或积极的体验?
我在火炬模式下运行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) ios ×4
appearance ×1
avfoundation ×1
camera ×1
flashlight ×1
ios5 ×1
objective-c ×1
storekit ×1
swift2 ×1
wkwebview ×1