小编zou*_*oul的帖子

当应用程序进入前台时重新加载应用程序数据?

我是iPhone开发人员的新手...我正在构建一个从本地sqlite3数据库加载数据的应用程序

-   (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
Run Code Online (Sandbox Code Playgroud)

当我点击iPhone按钮并将其放在背景中然后我回想起它我看到(正常)应用程序的方式与我离开它的方式相同.我想做的是,当它出现在foregroud中时,重新加载数据就像从头开始调用一样.

这是正确的方法吗?

在此先感谢c.

multitasking ios

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

如何在Objective-C中声明静态变量?

有人能告诉我们如何将静态变量声明为Objective C类的一部分吗?我希望这能跟踪我使用此类创建的实例数.

objective-c

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

我可以删除弹出窗口中的箭头吗?

我被要求删除弹出视图的箭头.

  1. 这违反了人机界面指南吗?
  2. 在另一个popover中显示一个popover是明智的吗?
  3. 如果它没有违反人机界面指南怎么做?

iphone ipad uipopovercontroller

6
推荐指数
3
解决办法
7088
查看次数

迷失在NSButton类型和替代图像

我想要NSButton一张图片和一张替代图片.按下按钮时应显示备用图像,我还想从代码中显示备用图像,调用类似的内容[button setSelected:YES].这可能不用手工编织alternateImage物业吗?

macos cocoa nsbutton

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

读取视频样本的基本AVAssetReader问题

我想通过AVAssetReader读取视频样本,我遇到了各种各样的路障.可以使用应用程序包中的一个名为"Movie.m4v"的视频设置AVAsset并使用AVAssetReader循环浏览视频帧(CMSampleBufferRef).

这里有一些我现在使用的代码不起作用:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Movie.m4v"];
AVAsset *avAsset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:path] options:nil];
NSError *error = nil;
AVAssetReader *reader = [[AVAssetReader alloc] initWithAsset:avAsset error:&error]; // crashing right around here!

// I've gotten avassetreader to not crash upon initialization by grabbing an asset from the ALAssetsLibrary but it says it has 0 tracks!

NSArray *videoTracks = [avAsset tracksWithMediaType:AVMediaTypeVideo]; 
AVAssetTrack *videoTrack = [videoTracks objectAtIndex:0];
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
AVAssetReaderTrackOutput *asset_reader_output = [[AVAssetReaderTrackOutput alloc] …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c avfoundation ios

6
推荐指数
1
解决办法
4915
查看次数

如何让非程序员更容易使用Git子模块?

我们的小软件商店最近从Subversion迁移到Git,因为我们的程序员更好地发现了Git.迁移并非轻松,我们遇到子模块功能问题.我的主要抱怨是,一旦repo包含子模块,你就不能简单地克隆它并期望它能够正常工作.您必须执行额外的步骤来初始化和下载子模块.后续拉动应该自动更新子模块,这样就可以了.但是当我添加一个新的子模块时,推送提交和人们拉动,他们不会自动获得新的子模块,他们必须git submodule update再次手动.

这是愚蠢的,因为人们不能简单地用子模块拉回购物并期望它的构建.这种理解是否正确?程序员可以简单地编写脚本或别名来在接收新提交后更新子模块,但对于我们的非程序员子模块来说很痛苦.我想提出一个解决方案,无论使用何种Git客户端,克隆/拉动后repo都能正常工作.

我有什么选择?

git git-submodules

6
推荐指数
1
解决办法
1722
查看次数

iOS中的多线程 - 如何强制线程等待条件?

我正在创建一个从数据库中获取一组结果的应用程序 - 我使用MBProgressHUD来显示带动画的查询进度.我使用的方法在另一个线程中执行方法时调用动画,一旦完成,它就会隐藏动画.我的问题是,在致电:

[HUD showWhileExecuting:@selector(getResults) onTarget:self withObject:nil animated:YES];
Run Code Online (Sandbox Code Playgroud)

我想,如果没有结果,则显示一条警告,说明这一点,如果有,则加载下一个视图.到目前为止,我有这个代码:

[HUD showWhileExecuting:@selector(getResults) onTarget:self withObject:nil animated:YES];

if(self.thereAreEvents) {
    [self performSegueWithIdentifier:@"searchResults" sender:self];
} else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No results" message:@"Sorry, there are no results for your search. Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
    [alert release];
}
Run Code Online (Sandbox Code Playgroud)

self.thereAreEventsgetResults方法结束时设置.但是,由于该方法在另一个线程中被调用,因此即使数据库中存在事件,该执行行也会继续并显示警报.

所以,从这里开始,我有两个问题:在iOS中实现等待信号机制的最简单方法是什么?在iOS中实现这种机制的最有效方法是什么?

谢谢!

iphone multithreading cocoa-touch ios

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

从什么时候开始Xcode不再需要前向方法声明?为什么?

我注意到Xcode(或更确切地说是Apple LLVM编译器?)不再需要正向方法声明.换句话说,以下代码构建时没有警告:

@implementation Foo

-(void) foo {
    [self bar];
}

-(void) bar {}

@end
Run Code Online (Sandbox Code Playgroud)

这曾经发出警告-fooFoo可能没有回应-bar,对吧?编译器现在更聪明还是其他的东西?我正在使用Xcode 4.3.1和Apple LLVM编译器3.1.

xcode llvm

6
推荐指数
1
解决办法
691
查看次数

CloudKit是强烈一致的,还是最终一致的?

官方文档是否在某处讨论有关CloudKit的一致性?根据我的测试,它似乎最终是一致的 - 在写完之后立即读取记录可能有用而且可能不会(返回空结果):

CKDatabase *database = [[CKContainer defaultContainer] publicCloudDatabase];
CKRecord *record = [[CKRecord alloc] initWithRecordType:@"Foo"];

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[database saveRecord:record completionHandler:^(CKRecord *record, NSError *error) {
    CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Foo" predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]];
    [database performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
        XCTAssertEqualObjects(results, @[], @"Freshly written object not returned by query."); // succeeds
        dispatch_semaphore_signal(semaphore);
    }];
}];

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
Run Code Online (Sandbox Code Playgroud)

有没有办法强制强烈一致的读取,以反映所有以前的更新?

eventual-consistency cloudkit

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

在 UIAlertController 被解除之前,是否可以阻止我的代码的执行?

无论如何,是否有等待用户通过使用 DispatchQueue 或其他方式按下在 swift 3 中关闭 alertController 的按钮?

ios swift uialertcontroller

6
推荐指数
1
解决办法
3127
查看次数