小编cbr*_*hli的帖子

为什么在创建UIWebView时清除NSUserDefaults会导致EXC_CRASH?

在开始之前,我应该告诉你,这只发生在iOS 5.1中.在最近的更新之前,这从未发生过,并且它仍然不会发生在任何其他版本上.那就是说,这是正在发生的事情.

当用户退出我的应用程序时,发生的一件事就是NSUserDefaults删除了所有内容.而不是手动删除我可能添加到用户默认值的每个键,我只是NSUserDefaults使用此SO问题中建议的方法完全删除所有键:

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Run Code Online (Sandbox Code Playgroud)

然而,似乎发生了什么,每次我尝试创建一个UIWebView删除后NSUserDefaults,我得到一个EXC_CRASH (SIGABRT).当我打电话时发生了崩溃[[UIWebView alloc] initWithFrame:frame].奇怪吧?完全退出并重新打开应用程序可以UIWebView再次创建s.

所以,我设法找出删除默认值会导致UIWebView问题,但可以肯定的是,我添加了一个符号断点-[NSUserDefaults setObject:forKey:].

-  [NSUserDefaults setObject:forKey:]断点

创建UIWebView确实会触发断点.

浏览崩溃日志给出了例外原因:

-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenceKey)
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的开始:

0 CoreFoundation 0x3340688f __exceptionPreprocess + 163
1 libobjc.A.dylib 0x37bd4259 objc_exception_throw + 33
2 CoreFoundation 0x33406789 +[NSException raise:format:] + 1
3 CoreFoundation 0x334067ab +[NSException raise:format:] + 35 …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiwebview nsuserdefaults ios

31
推荐指数
1
解决办法
4848
查看次数

Instagram如何将UIKeyboard returnKey定制为"@"和"#"?

Instagram iOS应用程序的最新版本做了一些有趣的事情.在文本字段中写入(例如,发布评论)时,UIKeyboard的返回键已被两个键替换:@键和#键.这是一个截图:

Instagram键盘的屏幕截图

我想知道他们是怎么做到的.据我所知,@#钥匙表现得像普通键:他们的键盘消失通常不具有returnKey(如表情符号键盘),等等.

到目前为止我唯一想到的是应用程序获取UIKeyboard对子视图的循环,查找和隐藏returnKey,然后查找和移动@#键.还有其他想法吗?

objective-c uikeyboard ios instagram

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

模拟has_many:通过Mongoid

我正在尝试使用MongoDB作为数据库创建一个事件平台.我希望Events和之间有多对多的关系Users.问题是,我希望在关系中有属性(例如,Users可以确认或未确认具体Event).我意识到这将非常适合RDBMS,但我使用MongoDB的原因是我在其他地方利用它,我宁愿继续使用它.

我希望每个人Event都能嵌入许多Guests属于的人Users.这样,我可以看到哪些用户快速参加了一个事件并且只有一个查询.不过,我也想看看这Events一个User迅速出席,所以我想每一个User有数组EventIDS.

这是一个代码摘要.

# user of the application
class User
  has_many :events
end

# event that users can choose to attend
class Event
  embeds_many :guests
  has_many :users, :through => :guests      # Won't work
end

# guests for an event
class Guest
  field :confirmed?, type: Boolean

  embedded_in :event
  belongs_to  :user
end


# Ideal use pattern
u = User.create
e …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails data-modeling mongodb mongoid

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