将 firebase 框架添加到 ios 项目时出现链接器错误

2024-05-09

我一直在尝试将 firebase 框架添加到我的 ios 应用程序中。我按照这里的说明进行操作:https://www.firebase.com/docs/ios-quickstart.html https://www.firebase.com/docs/ios-quickstart.html。当我尝试编译我的项目,甚至是 firebase 模板项目时,我遇到了大量链接器错误。 (如果有人感兴趣,我可以将它们粘贴到这里,但文字很多)firebase 框架需要这些框架,我已确保将它们全部包含在内。

libicucore.dylib
CFNetwork.framework
Security.framework
SystemConfiguration.framework

是否还有其他我缺少但未列出的框架?我不知道发生了什么事。谢谢您的帮助!


编辑:这是错误

i386 架构的未定义符号: “标准::1::basic_string, std::__1::allocator >::compare(char const*) const",引用自: Firebase 中的 leveldb::VersionSet::Recover() (version_set.o) “标准::_1::_vector_base_common::__ throw_length_error() const”,引用自: 无效标准::_1::矢量>::Firebase 中的 _push_back_slow_path(leveldb::Iterator* const&) (db_impl.o) 无效标准::_1::矢量>::Firebase 中的 _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) (db_impl.o) 无效标准::_1::矢量>::Firebase 中的 _push_back_slow_path(unsigned long long const&)(db_impl.o) 无效标准::_1::向量,std::__1::分配器>>::Firebase 中的 _push_back_slow_path const>(std::__1::pair const&)(db_impl.o) std::__1::enable_if<__is_forward_iterator>::值,std::_1::_wrap_iter >::类型 std::_1::向量>::插入>(std::_1::__wrap_iter,std::_1::_wrap_iter,std::_1::_wrap_iter) 在 Firebase(version_set.o) 标准::_1::矢量>::Firebase 中的 _append(unsigned long)(version_set.o) std::__1::enable_if<:value void>::type std::__1::vector >::assign(leveldb::FileMetaData*, leveldb::文件元数据*) 在 Firebase(version_set.o) 中 ... “std::__1::basic_string,std::__1::allocator >::__init(char const*, unsigned long)”,引用自: -Firebase 中的[APLevelDB initWithPath:error:](APLevelDB.o) Firebase 中的 leveldb::DBImpl::NewDB() (db_impl.o) Firebase 中的 leveldb::Status::ToString() const(status.o) Firebase 中的 leveldb::VersionSet::WriteSnapshot(leveldb::log::Writer*) (version_set.o) Firebase 中的 leveldb::VersionSet::SetupOtherInputs(leveldb::Compaction*) (version_set.o) Firebase 中的 leveldb::VersionSet::Builder::Apply(leveldb::VersionEdit*) (version_set.o) Firebase(filename.o) 中的 leveldb::SetCurrentFile(leveldb::Env*, std::__1::basic_string, std::__1::allocator > const&, unsigned long long) ... “std::__1::basic_string,std::__1::allocator >::__init(char const*, unsigned long, unsigned long)”,引用自: Firebase 中的 leveldb::DBImpl::DeleteObsoleteFiles() (db_impl.o) Firebase 中的 leveldb::DestroyDB(std::__1::basic_string, std::__1::allocator > const&, leveldb::Options const&) (db_impl.o) Firebase 中的 leveldb::VersionSet::Recover() (version_set.o) Firebase(filename.o) 中的 leveldb::MakeFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long, char const*) Firebase(filename.o) 中的 leveldb::DescriptorFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long) Firebase 中的 leveldb::CurrentFileName(std::__1::basic_string, std::__1::allocator > const&) (filename.o) Firebase 中的 leveldb::LockFileName(std::__1::basic_string, std::__1::allocator > const&) (filename.o) ... “std::__1::basic_string,std::__1::allocator >::append(char const*)”,引用自: Firebase 中的 leveldb::DBImpl::GetProperty(leveldb::Slice const&, std::__1::basic_string, std::__1::allocator >*) (db_impl.o) Firebase 中的 leveldb::Version::DebugString() const (version_set.o) Firebase 中的 leveldb::VersionEdit::DebugString() const (version_edit.o) Firebase 中的 leveldb::TableBuilder::Finish() (table_builder.o) Firebase 中的 leveldb::ParsedInternalKey::DebugString() const (dbformat.o) Firebase(logging.o) 中的 leveldb::AppendNumberTo(std::__1::basic_string, std::__1::allocator >*, unsigned long long) Firebase 中的 leveldb::AppendEscapedStringTo(std::__1::basic_string, std::__1::allocator >*, leveldb::Slice const&) (logging.o) ... “std::__1::basic_string,std::__1::allocator >::append(char const*, unsigned long)”,引用自: Firebase 中的 leveldb::WriteBatchInternal::Append(leveldb::WriteBatch*, leveldb::WriteBatch const*) (write_batch.o) Firebase 中的 leveldb::DBImpl::DeleteObsoleteFiles() (db_impl.o) Firebase 中的 leveldb::DestroyDB(std::__1::basic_string, std::__1::allocator > const&, leveldb::Options const&) (db_impl.o) Firebase 中的 leveldb::Status::ToString() const(status.o) Firebase 中的 leveldb::Version::DebugString() const (version_set.o) Firebase 中的 leveldb::VersionSet::Recover() (version_set.o) Firebase(filename.o) 中的 leveldb::MakeFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long, char const*) ... “std::__1::basic_string,std::__1::allocator >::assign(char const*)”,引用自: Firebase 中的 leveldb::DBImpl::GetProperty(leveldb::Slice const&, std::__1::basic_string, std::__1::allocator >*) (db_impl.o) Firebase 中的 leveldb::InternalKey::DebugString() const (dbformat.o) leveldb::(匿名命名空间)::PosixEnv::GetTestDirectory(std::__1::basic_string, std::__1::allocator >*) Firebase(env_posix.o) “std::__1::basic_string,std::__1::allocator >::assign(char const*, unsigned long)”,引用自: Firebase 中的 leveldb::WriteBatchInternal::SetContents(leveldb::WriteBatch*, leveldb::Slice const&) (write_batch.o) Firebase 中的 leveldb::DBImpl::DoCompactionWork(leveldb::DBImpl::CompactionState*) (db_impl.o) leveldb::BuildTable(std::__1::basic_string, std::__1::allocator > const&, leveldb::Env*, leveldb::Options const&, leveldb::TableCache*, leveldb::Iterator*, leveldb:: Firebase(builder.o) 中的 FileMetaData*) Firebase 中的 leveldb::SaveValue(void*, leveldb::Slice const&, leveldb::Slice const&) (version_set.o) Firebase 中的 leveldb::VersionSet::WriteSnapshot(leveldb::log::Writer*) (version_set.o) Firebase 中的 leveldb::VersionEdit::DecodeFrom(leveldb::Slice const&) (version_edit.o) Firebase 中的 leveldb::TableBuilder::Add(leveldb::Slice const&, leveldb::Slice const&) (table_builder.o) ... “std::__1::basic_string,std::__1::allocator >::resize(unsigned long, char)”,引用自: Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::Clear() (write_batch.o) Firebase 中的 leveldb::VersionSet::Recover() (version_set.o) leveldb::(匿名命名空间)::BytewiseComparatorImpl::FindShortestSeparator(std::__1::basic_string, std::__1::allocator >*, leveldb::Slice const&) const in Firebase(comparator.o) leveldb::(匿名命名空间)::BytewiseComparatorImpl::FindShortSuccessor(std::__1::basic_string, std::__1::allocator >*) Firebase 中的 const(comparator.o) Firebase 中的 leveldb::BlockBuilder::Add(leveldb::Slice const&, leveldb::Slice const&) (block_builder.o) ... “std::__1::basic_string,std::__1::allocator >::push_back(char)”,引用自: Firebase 中的 leveldb::WriteBatch::Put(leveldb::Slice const&, leveldb::Slice const&) (write_batch.o) Firebase 中的 leveldb::WriteBatch::Delete(leveldb::Slice const&) (write_batch.o) Firebase 中的 leveldb::Version::DebugString() const (version_set.o) Firebase 中的 leveldb::AppendEscapedStringTo(std::__1::basic_string, std::__1::allocator >*, leveldb::Slice const&) (logging.o) Firebase 中的 leveldb::EscapeString(leveldb::Slice const&) (logging.o) Firebase 中的 leveldb::FilterBlockBuilder::Finish() (filter_block.o) “std::__1::basic_string,std::__1::allocator >::basic_string(std::__1::basic_string,std::__1::allocator > const&)”,引用自: Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::OpenCompactionOutputFile(leveldb::DBImpl::CompactionState*) (db_impl.o) Firebase 中的 leveldb::VersionEdit::AddFile(int, unsigned long long, unsigned long long, leveldb::InternalKey const&, leveldb::InternalKey const&) (db_impl.o) 无效标准::_1::矢量>::Firebase 中的 _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) (db_impl.o) 无效标准::_1::向量,std::__1::分配器>>::Firebase 中的 _push_back_slow_path const>(std::__1::pair const&)(db_impl.o) 标准::_1::向量,std::__1::分配器>>::_swap_out_circular_buffer(标准::_1::Firebase 中的 _split_buffer、std::__1:: 分配器 >&>&) (db_impl.o) Firebase 中的 leveldb::Status::ToString() const(status.o) ... “std::__1::basic_string,std::__1::allocator >::~basic_string()”,引用自: -Firebase 中的[APLevelDB initWithPath:error:](APLevelDB.o) -Firebase 中的[APLevelDB dataForKey:](APLevelDB.o) -Firebase 中的[APLevelDB stringForKey:](APLevelDB.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::~WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::~WriteBatch() (write_batch.o) ... “std::__1::basic_string,std::__1::allocator >::operator=(std::__1::basic_string,std::__1::allocator > const&)”,引用自: Firebase 中的 leveldb::DBImpl::NewDB() (db_impl.o) Firebase 中的 leveldb::DBImpl::TEST_CompactRange(int, leveldb::Slice const*, leveldb::Slice const*) (db_impl.o) Firebase 中的 leveldb::DBImpl::BackgroundCompaction() (db_impl.o) Firebase 中的 leveldb::DBImpl::GetProperty(leveldb::Slice const&, std::__1::basic_string, std::__1::allocator >*) (db_impl.o) Firebase 中的 leveldb::VersionEdit::AddFile(int, unsigned long long, unsigned long long, leveldb::InternalKey const&, leveldb::InternalKey const&) (db_impl.o) Firebase 中的 leveldb::VersionSet::LogAndApply(leveldb::VersionEdit*, leveldb::port::Mutex*) (version_set.o) Firebase 中的 leveldb::VersionSet::WriteSnapshot(leveldb::log::Writer*) (version_set.o) ... “无效标准::_1::_sort&, 无符号长长*>(无符号长长*, 无符号长长*, std::_1::_less&)”,引用自: Firebase 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) (db_impl.o) “std::terminate()”,引用自: Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::SanitizeOptions(std::__1::basic_string, std::__1::allocator > const&, leveldb::InternalKeyComparator const*, leveldb::InternalFilterPolicy const*, leveldb::Options const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::~DBImpl() (db_impl.o) Firebase 中的 leveldb::DBImpl::NewDB() (db_impl.o) Firebase 中的 leveldb::DBImpl::MaybeIgnoreError(leveldb::Status*) const (db_impl.o) ... “_ 的虚函数表cxxabiv1::_class_type_info”,引用自: Firebase 中 leveldb::WriteBatch::Handler 的类型信息(write_batch.o) Firebase 中 leveldb::DB 的类型信息 (db_impl.o) Firebase 中 leveldb::Snapshot 的类型信息 (db_impl.o) Firebase 中 leveldb::Comparator 的类型信息 (comparator.o) Firebase 中 leveldb::Cache 的类型信息 (cache.o) Firebase 中 leveldb::FilterPolicy 的类型信息 (filter_policy.o) Firebase 中 leveldb::Env 的类型信息(env.o) ... 注意:缺少 vtable 通常意味着第一个非内联虚拟成员函数没有定义。 “_ 的虚函数表cxxabiv1::_si_class_type_info”,引用自: Firebase 中 leveldb::(匿名命名空间)::MemTableInserter 的类型信息(write_batch.o) Firebase 中 leveldb::DBImpl 的类型信息 (db_impl.o) leveldb::DBImpl::RecoverLogFile 的类型信息(unsigned long long, leveldb::VersionEdit*, unsigned long long*)::Firebase 中的 LogReporter(db_impl.o) Firebase 中 leveldb::SnapshotImpl 的类型信息 (db_impl.o) Firebase 中 leveldb::VersionSet::Recover()::LogReporter 的类型信息 (version_set.o) Firebase 中 leveldb::Version::LevelFileNumIterator 的类型信息(version_set.o) Firebase 中 leveldb::(匿名命名空间)::BytewiseComparatorImpl 的类型信息(comparator.o) ... 注意:缺少 vtable 通常意味着第一个非内联虚拟成员函数没有定义。 “运算符删除”,引用自: -Firebase 中的[APLevelDB initWithPath:error:](APLevelDB.o) -Firebase 中的[APLevelDB setData:forKey:](APLevelDB.o) -Firebase 中的[APLevelDB setString:forKey:](APLevelDB.o) -Firebase 中的[APLevelDB dataForKey:](APLevelDB.o) -Firebase 中的[APLevelDB stringForKey:](APLevelDB.o) -Firebase 中的[APLevelDB removeKey:](APLevelDB.o) -Firebase 中的[APLevelDB commitWriteBatch:](APLevelDB.o) ... “operator delete(void*)”,引用自: Firebase 中的 leveldb::WriteBatch::Handler::~Handler() (write_batch.o) Firebase 中的 leveldb::(匿名命名空间)::MemTableInserter::~MemTableInserter() (write_batch.o) Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::~DBImpl() (db_impl.o) Firebase 中的 leveldb::DBImpl::~DBImpl() (db_impl.o) Firebase 中的 leveldb::DBImpl::DeleteObsoleteFiles() (db_impl.o) Firebase 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) (db_impl.o) ... “operator new[](unsigned long)”,引用自: Firebase 中的 leveldb::Status::CopyState(char const*)(status.o) Firebase 中的 leveldb::Status::Status(leveldb::Status::Code, leveldb::Slice const&, leveldb::Slice const&) (status.o) Firebase 中的 leveldb::Status::Status(leveldb::Status::Code, leveldb::Slice const&, leveldb::Slice const&) (status.o) Firebase 中的 leveldb::VersionSet::MakeInputIterator(leveldb::Compaction*) (version_set.o) Firebase(cache.o) 中的 leveldb::(匿名命名空间)::HandleTable::Resize() Firebase 中的 leveldb::LookupKey::LookupKey(leveldb::Slice const&, unsigned long long)(dbformat.o) Firebase 中的 leveldb::LookupKey::LookupKey(leveldb::Slice const&, unsigned long long)(dbformat.o) ... “operator new(unsigned long)”,引用自: Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::RecoverLogFile(unsigned long long, leveldb::VersionEdit*, unsigned long long*) (db_impl.o) Firebase 中的 leveldb::DBImpl::BackgroundCompaction() (db_impl.o) Firebase 中的 leveldb::DBImpl::OpenCompactionOutputFile(leveldb::DBImpl::CompactionState*) (db_impl.o) Firebase 中的 leveldb::DBImpl::NewInternalIterator(leveldb::ReadOptions const&, unsigned long long*) (db_impl.o) Firebase 中的 leveldb::DBImpl::GetSnapshot() (db_impl.o) Firebase 中的 leveldb::DBImpl::MakeRoomForWrite(bool) (db_impl.o) ... ”_cxa_begin_catch”,引用自: 标准::Firebase 中的 1::deque >::__add_back_capacity() (db_impl.o) leveldb::(匿名命名空间)::PosixEnv::Schedule(void ()(void), void*) 在 Firebase(env_posix.o) ”_cxa_call_unexpected”,引用自: Firebase 中的 leveldb::DBImpl::DeleteObsoleteFiles() (db_impl.o) Firebase 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) (db_impl.o) Firebase 中的 leveldb::DBImpl::CleanupCompaction(leveldb::DBImpl::CompactionState*) (db_impl.o) leveldb::销毁DB(std::Firebase 中的 1::basic_string、std::__1::allocator > const&、leveldb::Options const&) (db_impl.o) 无效标准::_1::矢量>::Firebase 中的 _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) (db_impl.o) 无效标准::_1::向量,std::__1::分配器>>::Firebase 中的 _push_back_slow_path const>(std::__1::pair const&)(db_impl.o) Firebase 中的 leveldb::VersionEdit::~VersionEdit() (db_impl.o) ... ”_cxa_end_catch”,引用自: 标准::Firebase 中的 1::deque >::__add_back_capacity() (db_impl.o) leveldb::(匿名命名空间)::PosixEnv::Schedule(void ()(void), void*) 在 Firebase(env_posix.o) ”_cxa_pure_virtual”,引用自: Firebase 中 leveldb::WriteBatch::Handler 的 vtable(write_batch.o) Firebase 中 leveldb::DB 的 vtable(db_impl.o) Firebase 中 leveldb::Comparator 的 vtable(comparator.o) Firebase 中 leveldb::Cache 的 vtable(cache.o) Firebase 中 leveldb::FilterPolicy 的 vtable(filter_policy.o) Firebase 中 leveldb::Env 的 vtable(env.o) Firebase 中 leveldb::SequentialFile 的 vtable(env.o) ... ”_cxa_rethrow”,引用自: 标准::_1::双端队列 >::Firebase 中的 _add_back_capacity() (db_impl.o) leveldb::(匿名命名空间)::PosixEnv::Schedule(void ()(void), void*) 在 Firebase(env_posix.o) ”_gxx_personality_v0”,引用自: Firebase 中的矮人异常展开信息 (__eh_frame) (APLevelDB.o) Firebase 中的矮人异常展开信息 (__eh_frame)(write_batch.o) Firebase 中的矮人异常展开信息 (__eh_frame) (db_impl.o) Firebase 中的矮人异常展开信息 (__eh_frame) (status.o) Firebase(builder.o) 中的矮人异常展开信息 (__eh_frame) Firebase 中的矮人异常展开信息 (__eh_frame) (version_set.o) Firebase 中的矮人异常展开信息 (__eh_frame) (table_cache.o) ... Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的矮人异常展开信息 (__eh_frame) (APLevelDB.o) Firebase 中的矮人异常展开信息 (__eh_frame)(write_batch.o) Firebase 中的矮人异常展开信息 (__eh_frame) (db_impl.o) Firebase 中的矮人异常展开信息 (__eh_frame) (status.o) Firebase(builder.o) 中的矮人异常展开信息 (__eh_frame) Firebase 中的矮人异常展开信息 (__eh_frame) (version_set.o) Firebase 中的矮人异常展开信息 (__eh_frame) (table_cache.o) ... Firebase 中的 leveldb::SanitizeOptions(std::__1::basic_string, std::__1::allocator > const&, leveldb::InternalKeyComparator const*, leveldb::InternalFilterPolicy const*, leveldb::Options const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) Firebase 中的 leveldb::DBImpl::~DBImpl() (db_impl.o) ... ld:未找到架构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)


对不起。我们今天推出了一个新版本,添加了对 libc++.dylib 的新依赖项,如果添加它,它应该会构建。

请注意,当前构建还存在一个问题,导致无法构建arm64。鉴于此,您可能只想使用以前的版本:https://cdn.firebase.com/ObjC/Firebase.framework-1.0.9.zip https://cdn.firebase.com/ObjC/Firebase.framework-1.0.9.zip

否则请等待一天左右,我们将整理出最新的版本。

带来不便敬请谅解!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 firebase 框架添加到 ios 项目时出现链接器错误 的相关文章

  • Xcode 6 Save for Enterprise Deployment 不再为 ipa 创建 plist?

    Xcode 5 帮助为企业 ipa 创建 plist 描述符 Xcode 6 6A313 仅创建 ipa 这是错误还是有意更改 如果是这样 退后一步的原因是什么 如果我之前没有使用 Xcode 5 生成 plist 我需要自己手动构建它 您
  • Swift 无法从上到下呈现视图控制器

    在我的应用程序中 我必须从上到下呈现屏幕 我尝试了下面的代码 它给出了相同的正常呈现风格 let screen self storyboard instantiateViewController withIdentifier Screen1
  • 苹果的外部配件(蓝牙)仅适用于 MFI 设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的学士论文的目标是通过蓝牙适配器将光串行设备连接到 iPad 目前我正在努力应对苹果的限制 我经常在网上看到我可以使用支持的配置文件 h
  • Angular8 firebase配置错误'@angular/fire/angularfire2'

    使用 firebase 配置 Angular 后尝试 ng 服务 时 出现错误 尽管我用谷歌搜索了这个错误消息但找不到任何东西 从错误信息来看 这个问题与库本身有关 user user MacBookPro post ng serve 10
  • 如何在 Swift 中退出“DispatchQueue.main.asyncAfter”

    我想在调用 deinit 时退出 DispatchQueue main asyncAfter 子视图 swift DispatchQueue main asyncAfter deadline now 5 0 self doSomething
  • 切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗?

    我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因 但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM 我发现这些是文件大小贡献最大的 10 个 ipa创建自Archive操作在一个Release构建配置 u
  • 数组索引超出范围的表视图

    我正在使用数组从数据库读取数据 目前数组中有 8 个项目 我正在尝试制作一个有节标题的表格 目前我有 4 个部分 并且我已正确设置并且它有效 它也可以在第一次运行时运行 但是当我尝试向后滚动时 我发现索引超出了范围 我正在使用 myarra
  • 获取UIButton的UITableViewCell?

    我正在尝试使用UIButton 它位于自定义的UITableViewCell类称为GFHomeCell The GFHomeCell has a postID属性 我想在准备继续时发送该属性 我设置了一个在按下按钮时运行的方法 但是 在按下
  • Modal UIViewController 在 iPad 上总是全屏显示。为什么?

    我试图在 iPad 上创建一个简单的模式对话框 无论是小设置 UIModalPresentationFormSheet 还是大设置 UIModalPresentationPageSheet 但无论我做什么 它们都会全屏显示 带有标题栏 模态
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • Angular/ HTML5 到 iOS WKWebView 通信

    我们正在尝试看看发送信号的最佳选择是什么To iOS WKWebView fromAngular 6 HTML5 项目 任何示例都会很棒 我们想要做的是 我们在 Angular 网页上有一个按钮 单击该按钮应该通知 iOS 执行某些操作 我
  • 我什么时候应该使用 CGM 设备组和主题?

    我正在考虑将 Google Cloud Messaging 合并到我的应用程序中 我想向与用户关联的所有设备发送消息 乍一看 它看起来像 GCM 的设备群组消息传递 https developers google com cloud mes
  • Objective-C 中的 at 符号和大括号,@{ ... } 是什么意思?

    我在 Objective C 中有这一行 NSMutableArray mutableArray mutableArray addObject Something aObject Otherthing anotherObject 什么是 部
  • 无法将 (Timer!) -> Void 转换为 ((CFRunLoopTimer?) -> Void)! - 将 NSTimer 扩展转换为 Swift 3

    我正在尝试将我在项目中使用的 Pod 转换为 Swift 3 它不是我编写的 但原作者尚未更新它 所以我将它分叉为我自己尝试的任何内容 但 我在尝试将扩展名转换为NSTimer到斯威夫特 3 Cannot convert value of
  • iOS 上邮件到达时收到通知吗?

    当邮件到达标准邮件应用程序时 有没有办法让应用程序收到通知 更准确地说 我想编写一个应用程序 它能够从标准邮件应用程序读取传入的电子邮件 其中包含自定义 txt 格式的新联系人或事件 然后 应用程序应将此新联系人 事件添加到 ipad 反之
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • Objective-C 语法是什么,椭圆式点表示法? “……”

    我在 Joe Hewitt 的 Three20 源代码中注意到了这一点 而且我以前从未在 Objective C 中见过这种特殊的语法 甚至不知道如何在适当的谷歌搜索中引用它 来自 UITableViewDataSource TTSecti
  • 启动时运行后台任务

    我正在编写一个 iOS 应用程序 它使用 Dropbox Datastore API 在多个设备之间同步数据 在 Android 上 我可以告诉服务在启动时启动 这使其能够同步 设备关闭时可能发生的任何更改 我无法找到让我的应用程序在 iO
  • Base64Transcoder.m 重复符号

    我想使用 SKPSMTPMessage 库 唯一的问题是这个库包含文件 Base64Transcoder m 由于我有 Dropbox SDK 该文件会出现重复错误 我该如何解决这个错误 我不能直接删除 Base64Transcoder m
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc

随机推荐