小编0xc*_*ced的帖子

为什么valueForKey:在UITextField上抛出UITextInputTraits属性的异常?

运行这个:

@try
{
    NSLog(@"1. autocapitalizationType = %d", [self.textField autocapitalizationType]);
    NSLog(@"2. autocapitalizationType = %@", [self.textField valueForKey:@"autocapitalizationType"]);
}
@catch (NSException *exception)
{
    NSLog(@"3. %@", exception);
}
Run Code Online (Sandbox Code Playgroud)

输出:

1. autocapitalizationType = 0
3. [<UITextField 0x6c15df0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key autocapitalizationType.
Run Code Online (Sandbox Code Playgroud)

我在期待:

1. autocapitalizationType = 0
2. autocapitalizationType = 0
Run Code Online (Sandbox Code Playgroud)

只有作为UITextInputTraits协议一部分的属性才会发生此异常.可以访问此类的常规属性.UITextFieldclearButtonModevalueForKey:

那么为什么不能通过UITextInputTraits键值编码访问属性呢?

cocoa-touch key-value-coding uikit

10
推荐指数
1
解决办法
1493
查看次数

我应该如何处理Objective-C库中的日志?

我正在编写一个Objective-C库,在某些地方我想记录一些信息.使用NSLog并不理想,因为它不可配置,既没有级别支持也没有标记支持.CocoaLumberjack和NSLogger都是流行的日志库,支持级别和上下文/标签,但我不想依赖第三方日志库.

如何以可配置的方式生成日志,而不会强制我的用户使用特定的日志记录库?

logging objective-c

10
推荐指数
1
解决办法
1693
查看次数

Java 8中的功能接口

我很难理清为什么lambda表达式可以分配给某些功能接口,而不是其他功能接口.例如,使用Metrics库中的一些功能接口:

Gauge<Double> foo = () -> { return null; };
RatioGauge bar = () -> { return null; };
Run Code Online (Sandbox Code Playgroud)

第二个语句有一个编译错误(在Eclipse中):

此表达式的目标类型必须是功能接口

据我所知,RatioGauge是一个功能界面.我错过了什么吗?

java java-8 codahale-metrics

9
推荐指数
1
解决办法
6534
查看次数

为什么MPMoviePlayerController全屏按钮图标更改为iOS 10中的标题图标?

我尝试使用MPMoviePlayerController作为嵌入式视频播放器,但我发现在iOS 10中更改全屏图标的问题?

是否有任何解决方案可以将其更改回原始全屏按钮?

谢谢,

这就是iOS 8和iOS 9中的样子:

这就是iOS 8和iOS 9中的样子

这就是iOS 10中的样子:

这就是iOS 10中的样子

video mpmovieplayercontroller video-streaming ios swift

9
推荐指数
1
解决办法
903
查看次数

Xcode构建自动化预定集成机器人设置

我已经手动检查了机器人时间表,并定期轮询新提交(它在5分钟内工作)所有三个选项都正常工作,但我无法理解第四个选项"使用自定义触发器脚本提交".

请任何人解释一下这第四个选项是如何工作的?它是否适用于每次提交的即时集成.

请查看以下链接:http: //www.likelyanswer.com/30202671/How-Do-I-Create-A-Trigger-Script-For-Bot-On-Xcode-5-Ci%3F 输入图像说明![在此处输入图像说明这里说明] 1

git xcode schedule bots build

8
推荐指数
1
解决办法
1024
查看次数

使用keyValueObservingExpectationForObject时的XCTest异常:keyPath:handler:

在我的单元测试中,我使用的-[XCTestCase keyValueObservingExpectationForObject:keyPath:handler:]方法是为了确保我的NSOperation完成,这是我的XCDYouTubeKit项目代码:

- (void) testStartingOnBackgroundThread
{
    XCDYouTubeVideoOperation *operation = [[XCDYouTubeVideoOperation alloc] initWithVideoIdentifier:nil languageIdentifier:nil];
    [self keyValueObservingExpectationForObject:operation keyPath:@"isFinished" handler:^BOOL(id observedObject, NSDictionary *change)
    {
        XCTAssertNil([observedObject video]);
        XCTAssertNotNil([observedObject error]);
        return YES;
    }];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        XCTAssertFalse([NSThread isMainThread]);
        [operation start];
    });
    [self waitForExpectationsWithTimeout:5 handler:nil];
}
Run Code Online (Sandbox Code Playgroud)

当我在Mac上本地运行它时,此测试总是通过,但有时它在Travis失败并出现此错误:

失败:捕获"NSRangeException","无法从<XCDYouTubeVideoOperation 0x1001b9510>中删除关键路径"isFinished"的观察者<_XCKVOExpectation 0x1001846c0>,因为它未注册为观察者."

难道我做错了什么?

macos key-value-observing ios xctest

8
推荐指数
1
解决办法
1425
查看次数

Xcode内部调试日志

我正在逆向工程Xcode,我想知道是否有办法启用调试日志.我猜Xcode可能有一些隐藏的偏好,是吗?

xcode logging nsuserdefaults

8
推荐指数
1
解决办法
1527
查看次数

iOS上的JavaScriptCore框架可用性

我正在使用iOS 7引入的JavaScriptCore框架.我的应用程序具有iOS 6.0部署目标.我正在将应用程序与JavaScriptCore.framework链接(默认情况下在所需模式下).新的JavaScript的Objective-C类(JSContext,JSValue在iOS 6上运行时,但我仍然可以使用普通的C API,即等)显然不能提供JSGlobalContextCreate(),JSObjectCallAsFunction()等等.

如果我链接在iOS 7中引入的MultipeerConnectivity框架并且我在iOS 6上运行我的应用程序,我在启动时会遇到预期的崩溃:

dyld: Library not loaded: /System/Library/Frameworks/MultipeerConnectivity.framework/MultipeerConnectivity
  Referenced from: /var/mobile/Applications/5AB83411-CEFC-437D-88F8-6B80C36CCE9F/MyApp.app/MyApp
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

当我链接JavaScriptCore框架时,为什么我的应用程序没有崩溃同样的dyld错误?

ios javascriptcore

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

libdispatch _dispatch_semaphore_wait_slow崩溃

我有时会在libdispatch内部发生崩溃,并且该SecItemCopyMatching函数会产生以下回溯.

* thread #1: tid = 0x169ee8, 0x0374c830 libdispatch.dylib`_dispatch_semaphore_wait_slow + 278, queue = 'com.apple.main-thread, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
    frame #0: 0x0374c830 libdispatch.dylib`_dispatch_semaphore_wait_slow + 278
    frame #1: 0x0374c711 libdispatch.dylib`dispatch_semaphore_wait + 37
    frame #2: 0x03921b54 libxpc.dylib`xpc_connection_send_message_with_reply_sync + 231
    frame #3: 0x01448e99 Security`securityd_message_with_reply_sync + 78
    frame #4: 0x01449098 Security`securityd_send_sync_and_do + 81
    frame #5: 0x01459926 Security`__SecItemCopyMatching_block_invoke + 218
    frame #6: 0x014589f9 Security`SecOSStatusWith + 37
    frame #7: 0x014597da Security`SecItemCopyMatching + 208
    frame #8: 0x0022b482 MyApp`+[BITKeychainUtils getPasswordForUsername:andServiceName:error:](self=0x00399e3c, _cmd=0x002d21e0, username=0x003a336c, serviceName=0x0c17c420, error=0xbfffeb24) + …
Run Code Online (Sandbox Code Playgroud)

crash libdispatch

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

rpath在库中的传播失败

简短问题:LC_RPATH库中命令的rpath是否传递到后续(和间接)动态加载的库中?

更确切地说:我已libapi.dylib动态链接到libloader.dylib动态加载插件libplugin.dylib.我有:

$ otool -l lib/libapi.dylib
lib/libapi.dylib
        libapi.dylib
        /usr/lib/libSystem.B.dylib
        @rpath/libloader.dylib

$ otool -l lib/libloader.dylib
lib/libloader.dylib
        libloader.dylib
        /usr/lib/libSystem.B.dylib

$ otool -l lib/plugins/libplugin.dylib
lib/plugins/libplugin.dylib:
        libplugin.dylib
        /usr/lib/libSystem.B.dylib
        @rpath/libloader.dylib

$ otool -L lib/libapi.dylib | grep "LC_RPATH" -A2
        cmd LC_RPATH
      cmdsize 32
        path @loader_path/ (offset 12)
Run Code Online (Sandbox Code Playgroud)

既不定义rpath命令libloader.dylib也不libplugin.dylib定义.并且安装名称没有任何@ rpath /或其他路径,尽管load命令中的名称前缀为@rpath /.

客户端现在加载libapi.dylib哪个链接到哪个libloader.dylib.此库动态加载libplugin.dylib链接到的库libloader.dylib.

为什么不能libplugin.dylib加载?它退出,因为它找不到libloader.dylib- 虽然它必须已经加载.为什么rpath @ loader_path/libapi.dylib没有正确地传播libloader.dyliblibplugin.dylib …

macos mach-o rpath dyld

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