我已经制作了很多按钮,我无法弄清楚为什么这个按钮不起作用.
我的层次结构设置如下:
View -> Scroll View -> Subview -> Button
Run Code Online (Sandbox Code Playgroud)
此子视图中还有很多其他项目,每个项目在触摸时都有效.在界面构建器中,我可以看到" Touch Up Inside "事件绑定到我的方法
__CODE__.
但是,当我单击该按钮时,该方法永远不会执行,我的断点随后永远不会被击中.
我注意到,即使我按下按钮上的按钮,标签也不会改变颜色(即使显示高亮显示触摸),但视图上的另一个按钮确实如此.
在按钮上启用了用户交互以及层次结构中的所有内容.
为了让我在子视图中的项目接收触摸事件,我使我的滚动视图看起来像这篇文章中的第4个答案.
我有一个Azure功能应用程序,它创建一个预编译的DLL(因此它使用普通的.cs文件,而不是旧的.csx方法,VS2017之前).以前,它的目标是.Net Framework 4.5.2.我将其更新为4.7,以便使用一些新的C#7功能.我通过"Update-Package -Reinstall"更新了我的NuGet包,并验证它们都在packages.config文件中设置了"net47"目标.
一切都很好.但是当我调用一个使用2 HttpRequestMessageExtensions种方法中的任何一种的函数时,我得到一个异常.例外的一个例子是:
Method not found: 'System.Net.Http.HttpResponseMessage
System.Net.Http.HttpRequestMessageExtensions.CreateResponse(
System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode)'.
Run Code Online (Sandbox Code Playgroud)
这是一个导致错误的微小测试函数的示例:
using System.Net;
using System.Net.Http;
public static HttpResponseMessage Run(HttpRequestMessage req)
{
return req.CreateResponse(HttpStatusCode.Accepted, "");
}
Run Code Online (Sandbox Code Playgroud)
一旦用Postman调用此函数,我将收到上述异常.我也得到了类似的方法,未发现异常,当我打电话GetQueryNameValuePairs()的HttpRequestMessage.
我已经尝试将我的NuGet包更新到最新,没有区别.我已经清理并重建并重新启动了很多次,确保核对我的bin和obj目录.
我不确定可能是什么问题.我想我可以降级回.Net 4.5.2,但我宁愿不.首先,我想使用C#7,而对于两个,我想了解问题是什么而不是避免它.
更新:有趣.问题似乎与System.Net.Http.如果我把它降低到4.0.0一切正常.如果我把它提升到任何更高版本,我会得到上面列出的问题.我尝试将我的每个软件包逐个降低到之前的版本号,以便找到它.然后我将所有这些更新到最新版本,它修复了问题.
我的视图控制器符合UITextFieldDelegate,但是当我尝试将文本字段的.delegate字段设置为self时,我收到警告:
"从不兼容的类型'AddReviewViewController*const __strong'"分配给'id'
我的头文件是这样的:
#import <UIKit/UIKit.h>
@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
@property (nonatomic) int storeID;
@end
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我声明它符合协议.在.m文件中,我有这个:
@property (strong, nonatomic) IBOutlet UITextView *reviewTextView;
Run Code Online (Sandbox Code Playgroud)
在"@interface AddReviewViewController()"部分
然后,在viewDidLoad中我做:
_reviewTextView.delegate = self;
Run Code Online (Sandbox Code Playgroud)
这就是我收到警告的地方.我已经尝试过清理和重建,并重新启动XCode.我错过了一些明显的东西吗?我符合协议....
编辑:感谢您的快速帮助.在我睡眠不足的状态下,我不停地重新阅读并发誓这就是我正在做的事情,但是,是的,错字.几分钟我无法给出答案,但问题解决了,谢谢!
我正在使用Xamarin制作iOS/Android应用程序(不是Xamarin.Forms,只是普通的Xamarin).我正在使用共享库而不是PCL.我希望我的应用程序调用Azure功能,但我不确定最安全/最好的方法来处理这个问题.我将它设置为"授权级别"的"功能".测试URL中包含"?code = ..."部分.我的印象是,如果我把它放在我的C#代码中,并且"代码"值暴露出从安全角度来看它被认为是一个坏主意.
我迷失了最安全/最好的处理方式.我已经读过在app.config中设置它也是一个坏主意.我找到了一些Web应用程序的参考资料,建议使用azure门户网站中提供的连接字符串,但由于这不是一个Web应用程序,我不确定我是如何在我的代码中实际检索这些值的(或者如果那是可能的话).
那么你如何建议我处理设置"代码"的值,以便我可以调用我的函数并避免安全问题?
更新:根据请求提供更多信息:我正在使用MSAL通过B2C活动目录对我的用户进行身份验证.我已经有了这部分工作,并收到了验证用户的令牌.
我刚刚在我的函数中启用了身份验证.
我的印象是,要从我的移动客户端调用我的函数,我必须创建一个新的HttpRequestMessage.我不确定那时我会放置什么来传递我的令牌.
目前,我的功能可以公开访问。有没有一种方法可以使它们只能通过其他方式(例如API网关)访问,而不能直接访问?我尝试通过“网络”刀片添加VNET,但我认为这没有做任何事情(我仍然可以公开调用这些函数)……我认为这样做是为了使这些函数可以访问专用网络上的资源。我在设置中没有看到任何将IP设为私有的选项。我对网络相关问题不是很精通,因此如果不清楚,我深表歉意。