我正在尝试使用Swift 3将我的项目从iOS 8迁移到Xcode 8中的iOS 10.我遇到了一个错误,在我的扩展中我已经声明了一些文件私有函数,并且这些函数中的方法因为无法访问私人保护等级.
这是我收到错误的地方:
extension VideoViewerViewController: SeekerViewDelegate {
fileprivate func seekerViewBeginSeeking(view: SeekerView) {
self.shouldStartPlayingAfterSeek = self.player.rate > 0.0 //'shouldStartPlayingAfterSeek' is inaccessible due to 'private' protection level
self.pause() //'pause()' is inaccessible due to 'private' protection level
}
Run Code Online (Sandbox Code Playgroud)
这是我的班级遵守的协议:
private protocol SeekerViewDelegate: class {
func seekerViewBeginSeeking(view: SeekerView)
func seekerView(view: SeekerView, didSeek progress: CGFloat)
func seekerViewDidEndSeeking(view: SeekerView)
}
Run Code Online (Sandbox Code Playgroud)
我仍在努力掌握fileprivate,private和internal的概念.
感谢所有帮助
我在'Dictionary'上创建了一个扩展来帮助我解析JSON.下面的方法帮助我这样做:
func toJSONString() -> String? {
if let dict = self as? AnyObject {
if let data = try? JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions(rawValue: 0)) {
if let json = String(data: data, encoding: String.Encoding.utf8) {
return json
}
}
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
问题出现在这一行:
if let dict = self as? AnyObject {
Run Code Online (Sandbox Code Playgroud)
我收到一条警告,说"检查选项时使用的'AnyObject'类型的非可选表达式"
我该如何解决这个问题?
我从Xcode手动创建了一个新的分支,由于某种原因没有在存储库中显示,所以我手动从GitHub浏览器创建了另一个分支.然后在尝试提交时我遇到了错误:
"远程存储库拒绝提交.请确保您有权推送到远程存储库并再试一次."
我已经和我的老板谈过了,他确保我得到了书面许可,所以我们都很困惑,为什么我不能正确承诺.
在另一个文件中,我正在从另一个故事板创建我的视图控制器的实例,并像这样呈现它:
let viewController:UIViewController = UIStoryboard(name: "UserProfile", bundle: nil).instantiateViewControllerWithIdentifier("profileID") as! ProfileViewController
self.presentViewController(viewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
在我的故事板中,我有一个正确的故事板ID,并在UINavigationController中嵌入了我的视图控制器.我还将初始视图控制器设置为UINavigationController.
为什么不出现?
因此,我一直在研究如何确定iOS应用程序是否是新的一天。基本上,我希望新的一天开始时将一堆值重置为0。我已经看到可以使用“ UIApplicationSignificantTimeChangeNotification”在午夜发送通知。但是,如果用户在9:00 AM处终止了该应用程序并在第二天9:00 AM再次打开该应用程序,这还会触发吗?
我还看到我可以使用“ NSCalendarDayChangedNotification”,据我了解,该行为具有相同的行为。我唯一关心的是,即使在用户终止应用程序之后,这两个方法中的任何一个是否都能完成检测日期变化的操作。
理想情况下,我想将通知观察者添加到viewDidLoad的.m文件顶部,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetValues) name:UIApplicationSignificantTimeChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
然后在文件中的其他地方...
- (void)resetValues {
... // reset values to 0
}
Run Code Online (Sandbox Code Playgroud)
目标是在每天更改开始时触发此通知。上面的代码能实现我想要的行为吗?
目前正在尝试创建一个在标题和消息之间包含一些空格的操作表.
这是我的行动表目前的样子:
这是我希望它看起来像:
忽略第二张图片中"停止跟随"按钮下的随机蓝色圆圈.我只是试图在标题和消息之间实现空间,而无需创建自定义操作表.这可以实现吗?如果是这样,怎么样?
我正在使用Open Weather Map API来获取用户当前的天气.
当我在Postman中运行请求时,我得到状态代码200并且能够接收数据.但是,在Xcode中我得到错误-1002
以下是执行'GET'请求的代码:
// Configure URL String
NSString *apiKey = @"MY_API_KEY";
NSString *urlString = [[NSString alloc] initWithFormat:@"api.openweathermap.org/data/2.5/weather?APPID=%@&lat=%@&lon=%@", apiKey, latitude, longitude];
NSString *encodedUrl = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:encodedUrl];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:theRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(data != nil) {
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
NSLog(@"Here is the json dict: %@", jsonDict);
NSLog(@"%@", response);
}
else {
NSLog(@"error: …Run Code Online (Sandbox Code Playgroud) Swift 3 中的以下函数会引发编译器错误:
func intrinsicContentSize() -> CGSize {
return CGSize(width: 0.0, height: 55.0)
}
Run Code Online (Sandbox Code Playgroud)
“方法 'intrinsicContentSize()' 与 Objective-C 选择器 'intrinsicContentSize' 与具有相同 Objective-C 选择器的超类 'UIView' 中的 'intrinsicContentSize' 的 getter 冲突”
如何在 Swift 3 中应用此功能?
我有一个从 -pi/2 到 3(pi)/2 开始绘制的圆,以形成一个完整的圆。在它的顶部,我有一个弧线,它根据收到的十进制值绕圆旋转。因此,值 0.5 应该填充圆的一半,0.9 应该填充圆的 90%,等等。
我知道我的弧的起始角度将与第一个圆相同(即 -pi/2),但是我将如何计算我的结束角度?
ios ×7
swift ×5
objective-c ×4
anyobject ×1
cocoa-touch ×1
dictionary ×1
github ×1
nscalendar ×1
storyboard ×1
swift3 ×1
trigonometry ×1
xcode ×1