我想知道是否有人可以向我展示如何实施CMStepCounter的示例.(我查看了文档,但仍然对如何实现有点困惑).
我想在每次采取步骤时更新我的视图上的UILabel.我也希望让应用程序在关闭时继续计算步数.
我对iOS比较新,任何帮助都会非常感激:)!
谢谢,瑞恩
原谅我,如果这是一个明显的问题,我相对较新.
我有一个模态视图,我设置了自定义大小和圆角:
- (void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
self.view.superview.bounds = CGRectMake(0, 0, 600, 450);
self.view.layer.cornerRadius = 60.0;
}
Run Code Online (Sandbox Code Playgroud)
然而,我发现当我绕视角时,我会在它的边缘出现这种灰色的颜色(好像它后面还有其他东西):(见图).

如何删除这些灰色边缘,使其显示正常的背景内容?我试过添加
self.view.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
然而,这仍然具有与上述相同的效果.
谢谢,
objective-c rounded-corners uiview ios uimodalpresentationstyle
我正试图拍摄我的MKMapView的截图.我通常使用Objective C中的以下代码实现此目的.
我想知道如何将NSData对象保存在内存中,而不是保存图像,然后立即从中读取.
我也想知道如何在Swift中编写它 - 特别是完成处理程序部分.我查看了文档 - 但不确定语法:https://developer.apple.com/library/prerelease/iOS/documentation/MapKit/Reference/MKMapSnapshotter_class/index.html#//apple_ref/c/tdef/MKMapSnapshotCompletionHandler
MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
options.region = self.mapView.region;
options.size = self.mapView.frame.size;
options.scale = [[UIScreen mainScreen] scale];
NSURL *fileURL = [NSURL fileURLWithPath:@"path/to/snapshot.png"];
MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
[snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
if (error) {
NSLog(@"[Error] %@", error);
return;
}
UIImage *image = snapshot.image;
NSData *data = UIImagePNGRepresentation(image);
[data writeToURL:fileURL atomically:YES];
}];
Run Code Online (Sandbox Code Playgroud) 我试图在属性发生变化时运行一个Setter,这也会影响该类中的逻辑:
以下是它在Objective-C中的用法:
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
Run Code Online (Sandbox Code Playgroud)
fetchedResultsController的Set方法:
- (void)setFetchedResultsController:(NSFetchedResultsController *)newFetchResultsContrller
{
NSFetchedResultsController *oldfetchResultsController = _fetchedResultsController;
if (newFetchResultsContrller != oldfetchResultsController) {
_fetchedResultsController = newFetchResultsContrller;
newFetchResultsContrller.delegate = self;
if ((!self.title || [self.title isEqualToString:oldfetchResultsController.fetchRequest.entity.name]) && (!self.navigationController || !self.navigationItem.title)) {
self.title = newFetchResultsContrller.fetchRequest.entity.name;
}
if (newFetchResultsContrller) {
[self performFetch];
} else {
[self.tableView reloadData];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在斯威夫特的尝试.但是我无法获取newFetchResultsController,因此无法完成休息.这是在swift中设置属性的正确方法吗?如何在Swift的Objective C中执行与上面相同的原理?
var fetchedResultsController:NSFetchedResultsController! {
willSet {
println("Set fetchedResultsController Called")
self.fetchedResultsController.delegate = self
performFetch()
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道如何在下面为我的CoreData NSManagedObject客户端创建一个类别的等价物:
我知道扩展现在是Swift中类别的替代 - 但不确定它们的实现.以下是我在下面扣除的内容:
class Client: NSManagedObject {
@NSManaged var name: String
@NSManaged var projects: NSSet
}
extension Client {
func addClientWithName(name:NSString, context:NSManagedObjectContext) -> Client {
var client:Client = Client();
// Check for name in the database already exists
let request:NSFetchRequest = NSFetchRequest(entityName: "Client")
let sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
let sortDescriptorsAry:NSArray = [sortDescriptor]
request.sortDescriptors = sortDescriptorsAry
request.predicate = NSPredicate(format: "name = %@", name)
var error:NSError?
let matches:NSArray = context.executeFetchRequest(request, error: &error)
if matches.count == 0 {
//Add …Run Code Online (Sandbox Code Playgroud) 我希望根据另一个字符串生成一个唯一的数字字符串 - 最好是 6-8 位长。
例如,我有一个包含电子邮件地址的字符串。然后,当单击按钮时,我会得到另一个字符串,其中包含基于该电子邮件地址的唯一 6-8 位数字。
我正在寻找循环我的NSArray*urls - 对每个对象进行一些字符串调整.
但是,一旦它进入For循环并尝试调整NSString*的东西 - 这会引发异常.
关于为什么我难倒的任何想法?
- (void)GetData
{
NSFileManager *fm = [NSFileManager defaultManager];
NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
directory = [NSString stringWithFormat:@"%@/%@/%@/%@", directory, self.researcherID, self.participantID, testTypeString];
directory = [directory stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSURL *url = [NSURL URLWithString:directory];
NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];
for (int x = 0; x < urls.count; x++) {
NSString *urlIndex = urls[x];
NSString *thing = [urlIndex stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
thing = [thing stringByReplacingOccurrencesOfString:@"file://" withString:@""];
// add thing to new …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现Objective-C equiv.下面用nib调用视图控制器时.
目标C:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.modalPresentationStyle = UIModalPresentationCustom;
self.transitioningDelegate = self;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止迅速的地方:
override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.modalPresentationStyle = UIModalPresentationStyle.Custom
self.transitioningDelegate = self
}
Run Code Online (Sandbox Code Playgroud)
但是我一直收到这个错误:
Class "ViewController" does not implement its superclass's required members
Run Code Online (Sandbox Code Playgroud)
我以为上面的init方法是否需要成员?
编辑 - 进入下面的更多细节: 类不实现其超类的必需成员