在Objective-C中,是否可以执行以下操作?
@property (nonatomic, strong) <UIWebView or WKWebView> *webView;
在这种情况下,我知道我可以使用UIView
甚至id
,但我认为范围太广。
谢谢!
答案 0 :(得分:0)
是的,但您可以通过类继承执行此操作,并将该属性声明为基类类型,这是您要支持的视图类的超类:
id
你可以声明该属性属于任何类型(@property (nonatomic, strong) id webView;
),但是在实际使用该实例时需要进行额外的测试,以便避免无法识别的选择器异常:
@property (nonatomic, strong) id<WebViewProtocol> webView;
也许最好的选择是声明一个协议来限制任何类型:
private static void WebRequest()
{
const string WEBSERVICE_URL = "<<Web service URL>>";
try
{
var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
if (webRequest != null)
{
webRequest.Method = "GET";
webRequest.Timeout = 12000;
webRequest.ContentType = "application/json";
webRequest.Headers.Add("Authorization", "Basic dchZ2VudDM6cGFdGVzC5zc3dvmQ=");
using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
{
var jsonResponse = sr.ReadToEnd();
Console.WriteLine(String.Format("Response: {0}", jsonResponse));
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}