小编Jan*_*edi的帖子

如何在不指定大小的情况下为整个iOS应用设置自定义字体

我正试图在我的整个过程中应用自定义字体iOS app.我发现我可以使用:

 [[UILabel appearance] setFont:[UIFont fontWithName:@"Proxima Nova" size:17.0]];
Run Code Online (Sandbox Code Playgroud)
  • 设置所有的默认字体和大小UILabels.但是,并非所有我的UILabels共享字体都相同.

  • 设置整个iOS应用程序的默认字体?,有人有同样的担忧,并被告知将size参数设置为0.0只设置字体而不是字体大小.

  • 当我尝试这样做时,UILabel我的应用程序中的所有文本都消失了(因为显然iOS从字面上理解了0.0字体大小).

有关如何普遍设置字体而不是大小的任何建议?非常感谢!

iphone cocoa objective-c uikit ios

34
推荐指数
5
解决办法
3万
查看次数

如何在JavaScript中实现具有相关值的类似Swift的枚举?

Swift语言具有出色的枚举支持.不仅可以使用案例定义标准枚举,而且案例可以具有"与它们相关联"的可选值.

例如,取自Swift文档:

enum Barcode {
    case UPCA(Int, Int, Int, Int)
    case QRCode(String)
    case Other
}
Run Code Online (Sandbox Code Playgroud)

这样可以通过传入一个值来创建条形码枚举,如下所示:

var productBarcode = Barcode.UPCA(8, 85909, 51226, 3)

并且还switchproductBarcode在稍后的日期来检索相关联的值(元组int或多个).


我一直在尝试enum用JavaScript(特别是ES5)实现这种系统,但是我遇到了障碍.构建枚举系统的最佳方法是什么,尤其是具有相关值的系统?

javascript enums language-design data-structures swift

13
推荐指数
2
解决办法
904
查看次数

学院/大学数据API

我试图构建一个应用程序,允许用户查找特定的大学和查看其相关数据(录取率,SAT成绩,大小等).但是,我找不到可以使用的API /数据库.我知道IPEDS网站拥有所有这些信息,但似乎他们没有可以通过GET或URL请求或任何其他方式访问的API.

有谁知道我可以访问这些信息的方式(或访问一些不可见的IPEDS API)?谢谢!

api json web-scraping

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

从AppDelegate呈现特定的视图控制器

每次我的应用程序变为活动状态时,我都会尝试显示一个视图控制器(密码请求类型视图).输入正确的密码后,它应该从堆栈中弹出.我试图推送的密码视图不是初始视图控制器,因此我无法从AppDelegate的applicationDidBecomeActive访问它.

我也试过从我的MainViewController的ViewWillAppear中推送密码视图,但是当应用程序变为活动状态时它不会被调用; 仅在刷新屏幕时.

在过去的几天里,我一直在研究类似的问题,但我仍然不理解正确的方法.我听说我可能无法以这种方式推送视图,因为在Storyboard或NavigationController连接/初始化/等之前可能会调用applicationDidBecomeActive.

如果有人能够提供推送/展示视图的正确方法,或者在其他地方做这类事情会更好,我会很感激.

解决:我刚刚从故事板中删除了视图并使用了笔尖代替.我用了:

PasscodeUnlockVC *passcodeUnlock = [[PasscodeUnlockVC alloc] initWithNibName:@"PasscodeUnlockVC" bundle:[NSBundle mainBundle]];
[(UINavigationController *)self.window.rootViewController pushViewController:passcodeUnlock animated:NO];
Run Code Online (Sandbox Code Playgroud)

查看层次数据:

(gdb) po [[(id)UIApp keyWindow] recursiveDescription]
<UIWindow: 0x736a4b0; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x7367b40>>
   | <UILayoutContainerView: 0x76977a0; frame = (0 0; 320 480); autoresize = W+H; layer =     <CALayer: 0x769de60>>
   |    | <UINavigationTransitionView: 0x7692110; frame = (0 0; 320 480); clipsToBounds = YES;      autoresize = W+H; layer = <CALayer: 0x769a8c0>>
   |    |    | <UIViewControllerWrapperView: 0x73868d0; frame = …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c ios

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

核心数据线程和锁争用问题

我目前正在编写iOS应用的同步引擎.我正在编写的方法之一是重载数据功能,其中应用程序重新下载用户的数据以及他们的所有照片.这是一个昂贵的操作(按时间),所以我创建了一个NSOperation子类,SSReloadDataOperation.它下载数据,获取currentUser实体,从当前用户中删除所有现有照片,然后重新填充它.

但是,即使我认为这是线程安全的,有时当操作正在运行并且-currentUser从其他地方访问时,应用程序崩溃,大概是在尝试获取它时.其他时候,UI有时会冻结,并且在调试器中暂停显示它总是在-currentUser NSFetchRequest执行调用时停止.

我如何使这个操作线程安全和原子,这样我可以下载和重新填充而不会阻塞主UI线程,仍然-currentUser可以访问?在使用锁或架构方面我是否缺少某些东西?谢谢!

码:

- (void)main
{
  // Download the photo data
  [[SyncEngine defaultEngine] getUserPhotosWithCompletionBlock:^(NSMutableArray *photos)
  {
     if (photos)
     {
         // Create a new NSManagedObjectContext for this operation

         SSAppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
         NSManagedObjectContext* localContext = [[NSManagedObjectContext alloc] init];
         [localContext setPersistentStoreCoordinator:[[appDelegate managedObjectContext] persistentStoreCoordinator]];

         NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
         [notificationCenter addObserver:self
                                selector:@selector(mergeChanges:)
                                    name:NSManagedObjectContextDidSaveNotification
                                  object:localContext];

         NSError* error;
         NSFetchRequest* request = [[[SyncEngine defaultEngine] managedObjectModel] fetchRequestFromTemplateWithName:@"CurrentUser" substitutionVariables:[[NSDictionary alloc] init]];
         User* currentUser = …
Run Code Online (Sandbox Code Playgroud)

multithreading cocoa-touch core-data objective-c ios

5
推荐指数
1
解决办法
237
查看次数

iOS 8 - 创建临时NSManagedObjects

在iOS 7(及更早版本)中,有能力有效地创建"临时" NSManagedObject,并可以选择稍后将其添加到上下文并保留它,如下所示:

NSEntityDescription* entityDescription = [NSEntityDescription entityForName:@"User" inManagedObjectContext:managedObjectContext];
User* user = [[User alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:nil];
Run Code Online (Sandbox Code Playgroud)

请注意nilNSManagedObjectContext参数.(查看马库斯S. Zarra的回答这个方法在这里)

但是,iOS 8已经更改了关系的管理方式,因此如果您在设置其上下文之前创建临时对象并添加关系,则在重新启动时将删除该关系:

User* user = [User temporaryEntity];
[user addPhotosObject:photo];
[managedObjectContext:insertObject:user];
[managedObjectContext:&error]; 
Run Code Online (Sandbox Code Playgroud)

这不会影响非关系对象,但确实无法创建具有关系的临时对象.

有谁知道如何解释这一变化并创建/使用临时工作NSManagedObject?谢谢!

-

此外,检查出这个在iOS 8论坛相关帖子.

cocoa-touch core-data objective-c ios ios8

5
推荐指数
1
解决办法
1721
查看次数

使用NSDictionary valueForKey查找对象与通过NSArray进行迭代

我正在为一些图像开发一个简单的iOS缓存系统.我需要跟踪UIImage本身及其标识符.现在,我试图找出哪种方法可以更快/更有效地访问正确的缓存图像.

选项1:

for (CachedImage* image in [cachedImageArray]
{
  if ([[image identifier] isEqualToString:@"id_12345"]
  { 
    // use that image
  }
}
Run Code Online (Sandbox Code Playgroud)

选项2:

UIImage* imageToRetrieve = [cachedImagesDictionary objectForKey:@"id_12345"
Run Code Online (Sandbox Code Playgroud)

使用一种方法或另一种方法有什么好处吗?如果是这样,它是不可忽视的吗?谢谢.

performance cocoa objective-c nsarray ios

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

PHP:从 JSON 字符串访问字典

我正在编写一个简单的 PHP 脚本,该脚本进行返回 JSON 的 API 调用。但是,我无法弄清楚如何获取该 JSON 字符串,将其转换为字典,并访问其中的嵌套字典/数据。

这是我到目前为止所拥有的:

<?php
$id = $_REQUEST['id'];

$url = http://exampleURLThatReturnsJSONString.com
$rawData = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

我读过您应该使用类似的东西$decodedData = json_decode($rawData) ,但我不确定下一步该怎么做,特别是如果我想使用像这样的键访问嵌套字典Schedule

任何帮助将不胜感激,谢谢!

php json server-side

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