我正在iOS中使用默认的emojis.我能够使用NSNonLossyASCIIStringEncoding编码成功编码和解码默认表情符号.
当我用简单的文本发送表情符号时它工作正常,但是当在字符串中添加一些特殊字符时它返回nil.我如何使它工作?
代码:
testString=":;Hello \ud83d\ude09\ud83d\ude00 ., <> /?\";
NSData *data = [testString dataUsingEncoding:NSUTF8StringEncoding];
NSString *strBody = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];
// here strBody is nil
Run Code Online (Sandbox Code Playgroud) 我开发了一个iOS应用程序,我们可以将emojis从iOS发送到Web门户,反之亦然.从iOS发送到门户网站的所有表情符号都显示完美,除了"©和®".
这是表情符号编码代码片段.
NSData *data = [messageBody dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *encodedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
//这段代码\251\256
作为Unicodes copyright
和emojis 返回registered
,因为这两个Unicode不符合标准代码,所以它不会显示在门户网站上.
那么我应该怎么做才能将它们转换为标准的Unicodes?
测试运行 :
messageBody = @"Copy right symbol : © AND Registered Mark symbol : ®";
Run Code Online (Sandbox Code Playgroud)
//我从上面的编码得到的编码字符串是
Copy right symbol : \\251 AND Registered Mark symbol : \\256
Run Code Online (Sandbox Code Playgroud)
它应该在哪里(在标准unicodes上)
Copy right symbol : \\u00A9 AND Registered Mark symbol : \\u00AE
Run Code Online (Sandbox Code Playgroud) 我有一个登录屏幕如下.在每个文本字段周围,我添加了一个视图,对于该视图,我想显示一个投影.我有点实现了我的尝试,但这件事不适用于iPhone Plus(6 +,8 +)设备.
你可以看到下面的区别.
iPhone 8 +: -
iPhone 8: -
这是我的代码
extension UIView {
func addShadow() {
layer.cornerRadius = 8
layer.masksToBounds = true
layer.shadowColor = UIColor.lightGray.cgColor
layer.shadowOffset = CGSize(width: 0, height: 1.0)
layer.shadowRadius = 2.0
layer.shadowOpacity = 0.5
layer.masksToBounds = false
layer.shadowPath = UIBezierPath(roundedRect: self.bounds,cornerRadius:8).cgPath
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能正确解决这个问题?
在我的聊天应用程序中,我使用JSQMessagesViewController来呈现对话.要开始对话,我要在View控制器和标题的标题中添加收件人,这应该随着收件人数量的增长而增长.
我怎样才能实现这一目标?
我正在开发一个消息传递应用程序,当应用程序保持打开状态时,自动锁定不起作用。(没有一行与代码自动锁定相关)
我用这条线来启用它,
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
任何想法如何做到这一点?
键盘上方的工具栏未显示在iOS 11.0上.它在<11.0版本上运行良好.
这是我添加工具栏的代码.那么我应该添加到iOS 11.0上显示它:
UIToolbar* customToolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 60)];
customToolBar.barStyle = UIBarStyleDefault;
customToolBar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc] initWithTitle:@"+ Contact"
style:UIBarButtonItemStylePlain
target:self
action:@selector(showPicker:)],
[[UIBarButtonItem
alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil],
[[UIBarButtonItem alloc] initWithTitle:@"- Contact"
style:UIBarButtonItemStylePlain
target:self
action:@selector(HidePicker:)],
nil];
[customToolBar sizeToFit];
self.textView.inputAccessoryView=customToolBar;
Run Code Online (Sandbox Code Playgroud) 根据快速阅读,此键“ PHPhotoLibraryPreventAutomaticLimitedAccessAlert ”的目的是防止受限的库访问。我已在 info.plist 中添加了此选项,但它仍然在权限对话框中显示“选择照片”选项。
获取权限的代码如下。
func checkPhotoLibraryPermission(completionBlock completion: @escaping ()->Void) {
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
completion()
break
case .notDetermined,.denied,.restricted:
// ask for permissions
PHPhotoLibrary.requestAuthorization { (status) in
switch status {
case .authorized:
completion()
break
case .notDetermined,.denied,.restricted:
self.alertToEncouragePhotoLibraryAccessWhenApplicationStarts()
break
case .limited:
break
}
}
break
case .limited:
break
}
}
Run Code Online (Sandbox Code Playgroud)
有人请提及此密钥的确切用途是什么,是否有可能强制删除此选项?