小编jos*_*ons的帖子

Xcode 7魔法记录单元测试失败

从Xcode 6.4升级到Xcode 7(现在是7.0.1)后,我的项目在启动单元测试时崩溃了.我的iOS项目正在使用魔法记录,应用程序在此断言崩溃:

    + (NSManagedObjectContext *) MR_defaultContext
{
    @synchronized(self) {
        NSAssert(MagicalRecordDefaultContext != nil, @"Default context is nil! Did you forget to initialize the Core Data Stack?");
        return MagicalRecordDefaultContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经注释掉了我以前的所有测试,这两个测试都显示了相同的行为:

#import <XCTest/XCTest.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
}

- (void)tearDown {
    [super tearDown];
}

- (void)testSanity {
    XCTAssert(1 == 1);
}

@end
Run Code Online (Sandbox Code Playgroud)

#import <XCTest/XCTest.h>
#import <MagicalRecord/MagicalRecord.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
    NSLog(@"*** USING IN …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c ios magicalrecord

13
推荐指数
1
解决办法
660
查看次数

在Mac OS X上创建"Web Form Password"类型的Keychain Item

我正在开发一个应用程序,当用户选择菜单项时,他们会被带到网页.网页需要身份验证,并且为了让用户更简单,我希望将他们的身份验证信息传递给存储在我的应用程序中的Safari/Firefox/Chrome.

我已经尝试过创建通用和互联网钥匙串项目,这些项目在Keychain Access中显示得非常漂亮,但没有网络浏览器可以接收它们.

我注意到为浏览器存储的钥匙串项目具有"Web表单密码"类型.

当我尝试创建一个类型为"kSecAuthenticationTypeHTMLForm"的钥匙串项时,它在Keychain Access中显示为"互联网密码".我修改了EMKeychain类中的一些代码:

+ (EMInternetKeychainItem *)addInternetKeychainItemForServer:(NSString *)server
                                            withUsername:(NSString *)username
                                                password:(NSString *)password
                                                    path:(NSString *)path
                                                    port:(NSInteger)port
                                                protocol:(SecProtocolType)protocol
{
if (!username || !server || !password)
    return nil;

const char *serverCString = [server UTF8String];
const char *usernameCString = [username UTF8String];
const char *passwordCString = [password UTF8String];
const char *pathCString = [path UTF8String];

if (!path || [path length] == 0)
    pathCString = "";

SecKeychainItemRef item = nil;
OSStatus returnStatus = SecKeychainAddInternetPassword(NULL, strlen(serverCString), serverCString, 0, NULL, strlen(usernameCString), usernameCString, strlen(pathCString), pathCString, port, protocol, kSecAuthenticationTypeHTMLForm, …
Run Code Online (Sandbox Code Playgroud)

macos objective-c keychain

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

标签 统计

objective-c ×2

core-data ×1

ios ×1

keychain ×1

macos ×1

magicalrecord ×1