我正试图在我的整个过程中应用自定义字体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字体大小).有关如何普遍设置字体而不是大小的任何建议?非常感谢!
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)
并且还switch对productBarcode在稍后的日期来检索相关联的值(元组int或多个).
我一直在尝试enum用JavaScript(特别是ES5)实现这种系统,但是我遇到了障碍.构建枚举系统的最佳方法是什么,尤其是具有相关值的系统?
我试图构建一个应用程序,允许用户查找特定的大学和查看其相关数据(录取率,SAT成绩,大小等).但是,我找不到可以使用的API /数据库.我知道IPEDS网站拥有所有这些信息,但似乎他们没有可以通过GET或URL请求或任何其他方式访问的API.
有谁知道我可以访问这些信息的方式(或访问一些不可见的IPEDS API)?谢谢!
每次我的应用程序变为活动状态时,我都会尝试显示一个视图控制器(密码请求类型视图).输入正确的密码后,它应该从堆栈中弹出.我试图推送的密码视图不是初始视图控制器,因此我无法从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) 我目前正在编写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) 在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论坛相关帖子.
我正在为一些图像开发一个简单的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)
使用一种方法或另一种方法有什么好处吗?如果是这样,它是不可忽视的吗?谢谢.
我正在编写一个简单的 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。
任何帮助将不胜感激,谢谢!
ios ×5
objective-c ×5
cocoa ×2
cocoa-touch ×2
core-data ×2
iphone ×2
json ×2
api ×1
enums ×1
ios8 ×1
javascript ×1
nsarray ×1
performance ×1
php ×1
server-side ×1
swift ×1
uikit ×1
web-scraping ×1
xcode ×1