如何保存NSData到sqlite中,我使用FMDB包装器来保存数据.
下面是我到目前为止尝试过的代码
用于保存
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model.expertArray];;
NSString *query = [NSString stringWithFormat:@"insert into save_article values ('%@','%@','%@','%@','%@','%@')",
model.Id, model.title, model.earliestKnownDate, data, model.excerpt,model.image_url];
Run Code Online (Sandbox Code Playgroud)
对于Retriving
while([results next]) {
NSData *data = [results dataForColumn:@"experts"];
NSMutableArray *photoArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
Run Code Online (Sandbox Code Playgroud)
我已尝试过两种数据类型blob和文本但到目前为止没有运气,有人可以指导我怎么做吗?
我有一系列的UITests我想作为单独的测试运行,但我不想在每次测试之间重新启动应用程序.如何启动应用程序并使其保持打开状态,以便它不会在测试之间关闭和重新启动.
我尝试在init()中放置XCUIApplication().launch()但是出错了.
是否有一个Ruby工具允许我以(Abbreviated => Abr)的格式加载缩写文件?然后我需要从另一个文件中读取每个单词.如果单词与缩写中的单词匹配,我需要将其更改为缩写单词.我想我可以使用Hash,但我不知道如何从文件中加载它.
我正在尝试更新ODBCQueryTool,因此它在10.7下构建.它最初针对10.6,在新版本的Xcode中不直接支持.现在,一个正常工作的构建会很好,但理想情况下我想制作一个可在10.5或更新版本上构建和运行的版本.
所以开始我下载并安装了10.6 SDK.此时许多问题都消失了,但我得到了一系列问题:
ld:警告:
directory not found for option '-F/Users/maury/Develop/odbckit/ODBCQueryTool/../ODBCKit/build/Release'
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSMutableOrderedSet", referenced from:
objc-class-ref in libarclite_macosx.a(arclite.o)
Run Code Online (Sandbox Code Playgroud)
我在谷歌找不到任何有用的东西.我的印象是ARC是10.7和更新的一部分,所以我不清楚为什么我会得到这些.
我在Xcode 5中为我的项目添加了一个名为notes.txt的空文件.它是一个以星号或连字符开头的注释列表,以及一些空白行.在最初编辑时,字体大小很好.但在查看了一些源文件并返回notes.txt后,字体突然变小了.
我没有在Xcode窗口右侧的Utilities视图中的File Inspector中看到任何字体设置.文件类型为"默认 - 纯文本".我尝试将其更改为"Objective-C Source"以查看是否会产生任何影响,但事实并非如此.
我在Xcode的字体和颜色首选窗格中使用的主题是Midnight,Menlo Regular - 14.0用于源编辑器,Menlo Regular - 13.0用于控制台(但我也要将其设置为14.0).但是,notes.txt文件似乎使用大小为10或11的字体.我该如何解决这个问题?
编辑:我刚刚在文件中添加了一个新行,我可以看到较小的文本实际上是一个不同的字体.在下图中,第23行是旧文本,第25行是新文本.第25行看起来像我期望的Menlo字体.

我在iOS 7上只有一个不可重现的崩溃.我正在大量使用MKOverlayRenderer在地图上绘制形状.在iOS 6上不会发生此崩溃.
任何与此相关的想法都会有用.
Exception Type: EXC_BAD_ACCESS
Code: KERN_INVALID_ADDRESS at 0x291707628
Stack:
0 libobjc.A.dylib objc_msgSend + 5
1 VectorKit __50-[VKRasterOverlayTileSource invalidateRect:level:]_block_invoke_2 + 38
2 VectorKit -[VKTileKeyMap enumerateKeysAndObjectsUsingBlock:] + 58
3 VectorKit -[VKTilePool enumerateKeysAndObjectsUsingBlock:] + 76
4 VectorKit __50-[VKRasterOverlayTileSource invalidateRect:level:]_block_invoke + 178
5 ... libdispatch.dylib _dispatch_call_block_and_release + 10
6 libdispatch.dylib _dispatch_client_callout + 22
7 libdispatch.dylib _dispatch_main_queue_callback_4CF$VARIANT$mp + 268
8 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
9 CoreFoundation __CFRunLoopRun + 1300
10 CoreFoundation CFRunLoopRunSpecific + 522
11 CoreFoundation CFRunLoopRunInMode + 106
12 GraphicsServices GSEventRunModal …Run Code Online (Sandbox Code Playgroud) 在Xcode 5中使用XCTest运行测试时,有没有办法禁用一些额外的控制台消息?每次运行测试时,Xcode都会打印出一些关于我没有运行的测试的无用行:
Test Suite 'xxxxViewTests' started at 2014-01-13 17:10:48 +0000
Test Suite 'xxxxViewTests' finished at 2014-01-13 17:10:48 +0000.
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
Test Suite 'yyyyyyViewTests' started at 2014-01-13 17:10:48 +0000
Test Suite 'yyyyyyViewTests' finished at 2014-01-13 17:10:48 +0000.
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
Test Suite 'zzzzzzzViewTests' started at 2014-01-13 17:10:48 +0000
Test Suite 'zzzzzzzViewTests' finished at 2014-01-13 17:10:48 +0000.
Executed 0 tests, with 0 failures …Run Code Online (Sandbox Code Playgroud) 我正在Xcode 5.0.2上测试一个简单的应用程序.使用storyboard,我拖动了两个由segue连接的视图控制器.在第一个视图控制器上有一个按钮,按下该按钮后,下一个控制器出现,其中有两个文本字段.当我点击文本字段时,键盘没有显示,文本光标丢失.
textFieldViewController.h文件
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UITextField *numberField;
- (IBAction)textFieldDoneEditing:(id)sender;
- (IBAction)backgroundTap:(id)sender;
Run Code Online (Sandbox Code Playgroud)
textFieldViewController.m文件
- (IBAction)textFieldDoneEditing:(id)sender {
[sender resignFirstResponder];
}
- (IBAction)backgroundTap:(id)sender {
[self.nameField resignFirstResponder];
[self.numberField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
截图

[背景:iOS 7,Xcode 5,两者都是截至2014年2月的最新版本.测试数据是在iPhone 5(真实设备,非模拟器)上除了基本联系信息之外还有多个电话号码和多个地址的地址簿条目]
我的目标是使用AddressBookUI方法允许用户指定联系人,然后使用各种字段(地址,电话号码等)填充我的代码中的GUI.这ABPeoplePickerNavigationController是允许用户按名称选择联系人的标准机制.这样做会导致调用此委托方法:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
Run Code Online (Sandbox Code Playgroud)
但是,如果我此时检查人员记录,则没有任何多值字段具有任何数据.所以我提取了RecordID,检索到了,结果ABRecordRef也没有填充多值字段.
如果我YES从委托方法返回,则会向用户显示另一个显示联系人详细信息的UI.触摸任何字段都会导致此委托方法调用
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
Run Code Online (Sandbox Code Playgroud)
并且ABRecordRef填写了所有多值字段.
我找不到有关延迟加载的记录的任何信息,或者存在所需的延迟或权限问题,这会阻止字段被填充.而我用来检查记录的代码是一种方法,所以在第二个实例中找到值的完全相同的代码无法在第一个实例中找到它.
有关可能发生的事情的任何建议,或者如何在不向用户显示第二个UI的情况下检索完整记录?
我正在使用Apple的QuickContacts示例代码.以下是我所做的补充和更改.
+(NSMutableDictionary *)convertABRecordRef:(ABRecordRef)person
{
// Initialize a mutable dictionary and give it initial values.
NSMutableDictionary *contactInfoDict = [[NSMutableDictionary alloc] initWithCapacity:12];
// Use a general Core Foundation object.
CFTypeRef generalCFObject = ABRecordCopyValue(person, kABPersonFirstNameProperty);
ABRecordID foundId = ABRecordGetRecordID(person);
NSNumber *personIDNum = [NSNumber numberWithInteger:foundId];
[contactInfoDict setObject:personIDNum forKey:@"recordID"];
// Get the first name.
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试删除应用程序的URL冗余.如果单个联系人有多个URL,这种方法很有效.但是如果存在链接的联系人,通常保存操作将失败,并显示消息"操作无法完成.(CNErrorDomain error 2.)"
有什么建议如何解决这个问题?它不适用于统一联系吗?如果在单个非统一项目上单独删除URL,是否有办法从统一项目中获取?
以下是代码的摘录:
CNSaveRequest *saveRequest = [[CNSaveRequest alloc] init];
NSArray* keys = @[CNContactUrlAddressesKey];
NSPredicate *predicate = [CNContact predicateForContactsWithIdentifiers:identifiers];
NSError *error;
NSArray <CNContact *> *contacts = [_contactStore unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
for (CNContact *contact in contacts) {
// here we'll collect non-ambigous URLs
NSMutableArray<CNLabeledValue<NSString *> *> *copyOfURLs = [NSMutableArray array];
// just a marker for the moment if a URL with specific prefix was already found
NSString *baseURL = nil;
for (CNLabeledValue<NSString *> *labeledValue in contact.urlAddresses) {
NSString *url = …Run Code Online (Sandbox Code Playgroud)