小编Tof*_*zer的帖子

UISearchDisplayController自动释放如何导致其他视图控制器崩溃?

我有两个视图控制器A和B.从A,我导航到视图控制器B,如下所示:

// in View Controller A 
// navigateToB method

-(void) navigateToB {

BViewController *bViewController = 
[[BViewController alloc] initWithNibName: @"BView" bundle:nil];

bViewController.bProperty1 = SOME_STRING_CONSTANT;
bViewController.title = @"A TITLE OF A VC's CHOOSING"; 
[self.navigationController pushViewController: bViewController animated:YES];
[bViewController release]; //<----- releasing 0x406c1e0

}
Run Code Online (Sandbox Code Playgroud)

在BViewController中,属性bPropery1定义为如下复制(注意,B还包含UITableView和其他属性):

@property (nonatomic, copy) NSString *bProperty1;
Run Code Online (Sandbox Code Playgroud)

在A和B之间来回导航时,一切似乎都能正常工作.直到我在BViewController中包含的表视图中添加了一个UISearchDisplayController.现在,当我离开B,回到A时,应用程序崩溃了.

堆栈跟踪显示在崩溃时自动释放的搜索显示控制器的外观:

#0 0x009663a7 in ___forwarding___
#1 0x009426c2 in __forwarding_prep_0___
#2 0x018c8539 in -[UISearchDisplayController _destroyManagedTableView]
#3 0x018c8ea4 in -[UISearchDisplayController dealloc]
#4 0x00285ce5 in NSPopAutoreleasePool
Run Code Online (Sandbox Code Playgroud)

NSZombies显示:

-[BViewController respondsToSelector:]: message sent to deallocated instance 0x406c1e0 …
Run Code Online (Sandbox Code Playgroud)

objective-c uiviewcontroller iphone-sdk-3.0

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

如何保护核心数据iPhone应用程序中的sqlite数据库?

我有一个基于Core Data的iPhone应用程序,带有预先填充的只读数据库.我可以对我的数据库应用什么保护(如果有的话)以减少盗版/数据库从被囚禁的iPhone中读取的可能性?

大多数使用预先填充的sqlite数据库的代码示例都显示数据库正在从应用程序包中复制到iPhone上的应用程序文档目录中,这在一个已经破损的iPhone上完全可见.相反,我考虑直接从应用程序包中使用数据库,如下所示:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }

    NSURL *storeUrl = [NSURL fileURLWithPath: 
        [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:
             @"MyDatabaseName.sqlite"]];

    <... followed by standard persistentStoreCoordinator code ...>
Run Code Online (Sandbox Code Playgroud)

当我在商店网址上放置一个断点时,这只会返回另一个文件位置,我猜这个位置就像在一个破损的iPhone中的文档目录一样可见:

<CFURL 0x139610 [0x38388ff4]>{type = 15, string = file://localhost/var/mobile/Applications/6ACD76F0-396D-4DB1-A46B-B2459A084063/MyiPhoneApp.app/MyDatabaseName.sqlite, base = (null)}
Run Code Online (Sandbox Code Playgroud)

有人可以确认以上是否正确和/或是否有其他方法来解决这个问题(我不打算加密或类似的东西......希望快速保护解决方案)?欣赏坚定的黑客会得到他们想要的东西 - 如果可以的话,我想至少提出一些阻力.

谢谢

sqlite iphone core-data iphone-security

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

Google App Engine可用于"检查更新"并下载二进制文件Web服务吗?

我是Google App Engine的新手,非常感谢任何帮助.我有一个iPhone应用程序,它从设备上的sqlite db存储localling中获取数据.

我想建立一个我的iPhone客户端将与之交谈的Google App Engine网络服务,并检查是否有需要下载的更新版本的sqlite数据库.

因此,iPhone客户端使用某种版本号/时间戳来访问Web服务,如果有更新的文件,App Engine将通知客户端,然后客户端将请求新数据库下载App Engine将提供的服务.

是否可以在Google App Engine中设置Web服务来执行此操作?有人能指点我的任何示例代码/教程吗?

非常感谢

iphone google-app-engine

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