NSString *aNSString;
CFStringRef aCFString;
aCFString = CFStringCreateWithCString(NULL, [aNSString UTF8String], NSUTF8StringEncoding);
aCFString = CFXMLCreateStringByUnescapingEntities(NULL, aCFString, NULL);
我怎样才能得到一个新NSString的aCFString?
如何在swift中从本机swift String或NSString创建CFString
    let path:String = NSBundle.mainBundle().pathForResource(name.stringByDeletingPathExtension, ofType:"pdf")
    let string:CFString = ??? path
    let url:CFURLRef = CFURLCreateWithFileSystemPath(allocator:kCFAllocatorDefault, filePath:string, pathStyle:CFURLPathStyle.CFURLPOSIXPathStyle, isDirectory:false)
我有一个DTrace探针捕获函数的调用,函数的一个参数是a CFStringRef.这是一个私有结构,它包含一个指向unicode字符串的指针.但CFStringRef它本身并不是一个char*普通的DTrace方法,就像copyinstr()返回一样?cp?,这并不是很有用.
那么如何在DTrace动作中打印出字符串呢?
我已经创建了一个这样的字符串标记器:
stringTokenizer = CFStringTokenizerCreate(
                         NULL
                         , (CFStringRef)str
                         , CFRangeMake(0, [str length])
                         , kCFStringTokenizerUnitSentence
                         , userLocale);
但是如何从tokenizer中获取这些句子呢?CF字符串编程指南未提及CFStringTokenizer或令牌(在PDF中进行了全文搜索).
我两天来一直在努力解决一个奇怪的问题.我在SO上经历了所有相关问题但没有一个解决了这个问题.我正在研究Xcode5.我正在使用ARC和CoreData.
在iOS7(模拟器)上:
`[CFString release]: message sent to deallocated instance`
Thread 1, Queue : com.apple.main-thread
0   0x03c7d3ba in __kill ()
1   0x03c7c4b8 in kill$UNIX2003 ()
2   0x0347a921 in ___forwarding___ ()
3   0x0347a4ee in _CF_forwarding_prep_0 ()
4   0x02b7b002 in -[NSConcreteAttributedString dealloc] ()
5   0x02f66692 in objc_object::sidetable_release(bool) ()
6   0x02f65e81 in objc_release ()
7   0x02f66ce7 in (anonymous namespace)::AutoreleasePoolPage::pop(void*) ()
8   0x00739bc4 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) ()
9   0x0345253e in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
10  0x0345248f in __CFRunLoopDoObservers ()
11  0x034303b4 in __CFRunLoopRun ()
12 …我在UIScrollView中显示PDF.为此,我使用:
myDocumentRef = CGPDFDocumentCreateWithURL((CFURLRef)[[NSBundle mainBundle] URLForResource:@"salonMap" withExtension:@"pdf"]);
现在,我尝试使其适用于IOS 3.1(NSBundle URLForResource:3.1中不存在withExtension)
我将代码转换为:
NSString *fullPath =  [[NSBundle mainBundle] pathForResource:@"salonMap" ofType:@"pdf"];
NSLog(@"%@", fullPath);
CFStringRef fullPathEscaped = CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)fullPath, NULL, NULL,kCFStringEncodingUTF8);
CFURLRef urlRef = CFURLCreateWithString(NULL, fullPathEscaped, NULL);
myDocumentRef = CGPDFDocumentCreateWithURL(urlRef);
但它导致了一个
<Error>: CFURLCreateDataAndPropertiesFromResource: failed with error code -15
我确切地说NSLog记录了
/var/mobile/Applications/1CF69390-85C7-45DA-8981-A279464E3249/myapp.app/salonMap.pdf"
我该如何解决?
如何将a转换CFURLRef为C++ std::string?
我还可以从转换CFURLRef的CFStringRef方式:
CFStringRef CFURLGetString ( CFURLRef anURL );
但现在我有同样的问题.我怎样才能转换CFStringRef为std::string?
你好可爱的电脑人:
我想将以下CFStringRef转换为CString.知道怎么样?
recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"];
谢谢!
编辑1
DarkDust答案似乎已接近尾声,但我仍然收到错误(见评论).有帮助吗?
我刚下载了新的Xcode 7 beta 5,我找不到解决此错误的方法.它一直突出显示"pickker.mediaTypes = [kUTTypeImage]"这一行,并说"不能将类型'[CFString]'的值赋给'[String]''类型的值"
if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = UIImagePickerControllerSourceType.Camera
        picker.mediaTypes = [kUTTypeImage]
        picker.allowsEditing = true
        self.presentViewController(picker, animated: true, completion: nil)
    }
    else{
        NSLog("No Camera.")
    }
在下面的编码中,我想通过CFSTR传递变量,我该怎么办?
ABMutableMultiValueRef address = ABMultiValueCreateMutable(kABDictionaryPropertyType);
// Set up keys and values for the dictionary.
CFStringRef keys[5];
CFStringRef values[5];
keys[0] = kABPersonAddressStreetKey;
keys[1] = kABPersonAddressCityKey;
keys[2] = kABPersonAddressStateKey;
keys[3] = kABPersonAddressZIPKey;
keys[4] = kABPersonAddressCountryKey;
values[0] = CFSTR("Wiztech, 208/B Clifton Center, Karachi");
//values[0] = CFSTR(address1); I want to pass address1 which is NSString, how can I?
values[1] = CFSTR("");
values[2] = CFSTR("");
values[3] = CFSTR("");
values[4] = CFSTR("");