小编use*_*234的帖子

如何编码URL中的加号(+)符号

下面的URL链接将打开一个新的Google邮件窗口.我遇到的问题是Google用空格替换了电子邮件正文中的所有加号(+).看起来它只发生在+符号上.有关如何解决这个问题的任何建议?(我正在使用ASP.NET网页)

https://mail.google.com/mail?view=cm&tf=0&to=someemail@somedomain.com&su=some subject&body =你好+那里你好

(在正文电子邮件中,"你好+你好那里"将显示为"你好你好那里")

asp.net gmail html-encode urlencode c#-4.0

55
推荐指数
4
解决办法
8万
查看次数

检测呈现的视图控制器何时被解除

假设我有一个名为VC2的视图控制器类的实例.在VC2中,有一个"取消"按钮会自动解除.但是当"取消"按钮被触发时,我无法检测或接收任何回调.VC2是一个黑盒子.

视图控制器(称为VC1)将使用presentViewController:animated:completion:方法呈现VC2 .

当VC2被解雇时,VC1必须检测哪些选项?

编辑:从@rory mckinnel的评论和@NicolasMiari的回答,我尝试了以下内容:

在VC2中:

-(void)cancelButton:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:^{

    }];
//    [super dismissViewControllerAnimated:YES completion:^{
//        
//    }];
}
Run Code Online (Sandbox Code Playgroud)

在VC1中:

//-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
- (void)dismissViewControllerAnimated:(BOOL)flag
                           completion:(void (^ _Nullable)(void))completion
{
    NSLog(@"%s ", __PRETTY_FUNCTION__);
    [super dismissViewControllerAnimated:flag completion:completion];
//    [self dismissViewControllerAnimated:YES completion:^{
//        
//    }];
}
Run Code Online (Sandbox Code Playgroud)

dismissViewControllerAnimatedVC1中没有被调用.

uiviewcontroller ios

53
推荐指数
8
解决办法
6万
查看次数

iOS设备作为Web服务器

我看到App Store上有几个应用程序允许其他计算机与iPhone/iPad设备进行http连接以传输文件.它看起来像是在iOS设备上运行的Web服务.只是好奇它是如何完成的/使用了什么类?

谢谢.

iphone cocoa-touch objective-c ipad ios

51
推荐指数
4
解决办法
5万
查看次数

如何在Xcode 4.1及更高版本的Xcode启动时关闭重新打开项目

在Xcode 4.1到现在(4.2.1)中,如果我在没有先关闭项目的情况下关闭Xcode,那么下次启动Xcode时项目将自动重新打开.以前我会得到欢迎屏幕.有没有办法改变这个,以便启动欢迎屏幕?

xcode4.1

18
推荐指数
3
解决办法
6589
查看次数

将UITextField添加到UIToolbar

我尝试将UITextField添加到UIToolbar,但得到了运行时错误,原因如下:[UITextField view]:无法识别的选择器发送到实例...

[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];
Run Code Online (Sandbox Code Playgroud)

toolbar是UIToolbar的一个实例,textField是UITextField的一个实例.

objective-c uitextfield uitoolbar ios

16
推荐指数
1
解决办法
1万
查看次数

iCloud:NSFileManager的startDownloadingUbiquitousItemAtURL的回调?

我使用NSFileManagerstartDownloadingUbiquitousItemAtURL从iCloud的本地副本(本地还没有文件在这种情况下副本)下载文件.我似乎找不到这个过程的回调.我需要回调告诉我的应用程序所请求的文件已完成下载(到本地副本),因此其他任务可以开始读取文件的内容并执行操作.

我可以检查文件是否已下载.但它会不断涉及民意调查.有没有办法在没有设置计时器的情况下执行此操作?

ios ios5 icloud icloud-api

14
推荐指数
1
解决办法
4262
查看次数

将由逗号分隔的NSString转换为NSArray

可能重复:
在Objective-C中将NSArray转换为NSString

我有一个NSArray myArray的数组,这里是内容:

 (
            "<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246",
            "<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324",
            "<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367"
 )
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码分配给NSString myString:

NSString *myString = [myArray description];
Run Code Online (Sandbox Code Playgroud)

而且输出仍然如预期:

 (
            "<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246",
            "<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324",
            "<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367"
 )
Run Code Online (Sandbox Code Playgroud)

现在,假设我想将myString转换回名为newArray的数组,我使用了这个:

NSArray *newArray = [[NSArray alloc]init];
newArray = [myString componentsSeparatedByString:@","];
Run Code Online (Sandbox Code Playgroud)

但是newArray的内容现在不同了:

(       
"(
    \"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"",
        "
    \"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"",
        "
    \"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\""
)"
) 
Run Code Online (Sandbox Code Playgroud)

知道我需要做些什么来解决这个问题吗?

objective-c nsstring nsarray ios

12
推荐指数
1
解决办法
2万
查看次数

当iOS应用程序进入后台时,TCP和UDP(与多播)连接会发生什么

我创建了几个实验:

设置1:我创建了一个TCP Sender应用程序和一个TCP Receiver应用程序.

在本次实验中,我在iOS设备上启动了TCP Sender,在另一台iOS设备上启动了TCP Receiver.然后两者都经过验证已建立连接并发送和接收数据.然后我将TCP Receiver应用程序置于后台.TCP Sender应用程序指示连接丢失和崩溃(是的,我打算那样).

设置2:我创建了一个UDP Sender应用程序和一个UDP Receiver应用程序.

与上面相同,我在iOS设备上启动了UDP Sender应用程序,在另一个iOS设备上启动了UDP Receiver应用程序.在UDP Receiver应用程序上,我订阅了一个多播组等.我验证了UDP Receiver应用程序正在从UDP Sender应用程序发出的该多播组中接收数据.然后我将UDP Receiver应用程序置于后台.2分钟后,我得到UDP Sender应用程序发送另一条数据.然后我完全退出UDP Sender应用程序并关闭该iOS设备.然后我等待另外2分钟或更长时间,然后从后台启动UDP Receiver应用程序.UDP Receiver应用程序确实接收了UDP Sender应用程序终止之前发送的数据.

在setup1中,我的解释是因为TCP是面向连接的.

在setup2中,我理解UDP是无连接的.任何解释为什么setup2在我的经验中起作用?(即使在后台模式下仍然可以接收数据)

udp network-programming tcp network-protocols ios

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

使用#selector而不是显式构造Selector

在下面的代码片段中,Xcode推荐"使用#selector而不是显式构建选择器"的原因是什么?

// addButton = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.Add, 
//             target: self, action: #selector(FoldersMaintenanceVC.addButtonPressed))
addButton = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.Add, 
            target: self, action: Selector("addButtonPressed"))

self.navigationItem.leftBarButtonItem = addButton

func addButtonPressed()
{
    myNslogSys2(self, funcName:#function)
}
Run Code Online (Sandbox Code Playgroud)

xcode swift

7
推荐指数
2
解决办法
6528
查看次数

如何使用displayName更新用户

所以我用FIRAuthcreateUserWithEmail来创建新的用户。我也想displayName为此用户分配。但是此功能仅接受电子邮件和密码。我要插入displayName什么?

FIRAuth.auth()?.createUserWithEmail(email, password: password, completion: { (user: FIRUser?, error: NSError?) in


})
Run Code Online (Sandbox Code Playgroud)

编辑:所以似乎有一个名为updateProfile的函数。但它似乎不适用于iOS平台库。任何的想法?

编辑:在这里找到解决方案:需要使用profileChangeRequest功能

firebase swift firebase-authentication

6
推荐指数
2
解决办法
2309
查看次数