Saya telah membaca banyak hasil pencarian yang dapat saya temukan pada masalah yang ditakuti ini, sayangnya, masing-masing tampaknya berfokus pada pemanggilan fungsi tertentu.
Masalah saya adalah bahwa saya mendapatkan kesalahan yang sama dari beberapa fungsi, yang saya duga sedang dipanggil kembali dari fungsi yang saya gunakan.
Lebih buruk lagi, kode aktual berada dalam kerangka kerja pribadi khusus yang sedang diimpor di proyek lain, dan karenanya, debugging tidak sesederhana itu?
Adakah yang bisa mengarahkan saya ke arah yang benar? Saya merasa saya menyebut metode tertentu salah atau dengan konteks yang buruk, tetapi keluaran dari xcode tidak terlalu membantu pada saat ini.
: CGContextSetFillColorWithColor: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini adalah rasa hormat: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextSetStrokeColorWithColor: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini bersifat sopan: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
CGContextSaveGState: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini adalah rasa hormat: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextSetFlatness: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini adalah rasa hormat: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextAddPath: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini bersifat sopan: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextDrawPath: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini bersifat sopan: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextRestoreGState: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini adalah rasa hormat: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
: CGContextGetBlendMode: konteks tidak valid 0x0. Ini adalah kesalahan serius. Aplikasi ini, atau perpustakaan yang digunakannya, menggunakan konteks yang tidak valid dan dengan demikian berkontribusi terhadap degradasi keseluruhan stabilitas dan keandalan sistem. Pemberitahuan ini adalah rasa hormat: tolong perbaiki masalah ini. Ini akan menjadi kesalahan fatal dalam pembaruan yang akan datang.
Kesalahan itu dapat terjadi ketika tampilan kustom disajikan, atau salah satu kelas yang diwarisi. Pada titik mana mereka muncul berkali-kali, hingga keyboard tidak memberikan input apa pun. Acara sentuh masih terdaftar, tetapi sistem melambat, dan akhirnya dapat menyebabkan kesalahan objek yang tidak terisi.
EDIT # 1: Saya memiliki akses ke framework yang sedang diimpor, tapi saya tidak melihat sesuatu yang aneh di kelas yang menyebabkan masalah.
EDIT # 2: Saya baru saja menerima email bahwa iOS 7.1 telah dirilis untuk pengembang. Saya ingin tahu apakah ini hilang, atau menjadi lebih buruk, atau dapat diselesaikan.
Jawaban:
Orang lain akan meminta Anda untuk memposting kode di mana Anda mengakses konteks grafis inti, tetapi saya ragu itulah masalahnya. Pesan kesalahan 0x0 konteks yang tidak valid ini umum dan mudah direproduksi di iOS 7. Bahkan, saya dapat mereproduksi kesalahan menggunakan storyboard dengan kode nol. Saya menyeret UITextField ke kanvas di IB, menjalankan aplikasi, dan ketuk dua kali di dalam bidang teks.
Dalam banyak situasi, sulit bagi saya untuk menganggap serius pesan kesalahan 0x0 konteks yang tidak benar. Saya tidak tahu apakah situasi Anda memerlukan perhatian yang lebih besar (saya setuju dengan Rob Napier bahwa ada baiknya diselidiki, terutama jika Anda secara eksplisit menggunakan konteks grafis).
Dalam proyek saya sendiri, saya berharap bahwa banyak dari kesalahan ini menghilang secara ajaib suatu hari (tetapi hari itu tidak datang dengan 7.0.3).
Pembaruan: Setelah menginstal Xcode 5.1 dan menargetkan iOS 7.1, saya tidak bisa lagi mereproduksi kesalahan dengan mengetuk dua kali di dalam bidang teks kosong.
sumber
Jika Anda penasaran kode apa yang menyebabkan log ini, Anda dapat menambahkan breakpoint simbolis pada
CGPostError
.sumber
Jenis kesalahan ini secara historis merupakan hasil dari memanggil fungsi-fungsi Core Graphics ketika tidak berada dalam konteks yang dibuat di dalam
drawRect
atau di antara panggilan-panggilan sepertiUIGraphicsBeginImageContext
danUIGraphicsEndImageContext
(atau fungsi-fungsi UIKit lainnya seperti yang memulai dan mengakhiri suatu konteks).Meskipun demikian, bilobatum benar bahwa urutan kesalahan tertentu ini dapat disebabkan oleh bug iOS 7 yang dirujuknya dalam jawabannya. Jika tidak melihat kesalahan ini dalam target iOS6 Anda, atau jika setelah pemindaian cepat kerangka kerja pribadi ini Anda tidak menemukan tersangka panggilan Core Graphics, itu mungkin saja bug iOS 7 ini. Tangkapan bagus, bilobatum!
sumber
pastikan size.width atau size.height bukan 0,
Anda dapat menambahkan simbol breakpoint ke CGPostError untuk memeriksa
sumber
Saya punya masalah dengan UITextField sederhana (keyboard tidak muncul dan banyak pesan kesalahan konteks yang tidak valid berbeda di konsol). Saya baru saja menemukan solusi dengan mencari masalah lain di SO: Tidak dapat menemukan executable untuk CFBundle CertUIFramework.axbundle
Kerjakan saja:
Masalahnya seharusnya tidak ada lagi
sumber
Dalam kasus saya, saya mengalami kesalahan dalam kode ini:
setelah beberapa pemikiran dan tes saya mendeteksi masalah - itu panggilan ini:
ketika saya mendeteksi - dalam kode saya panggilan ini tidak perlu, karena mengisi akan dilakukan dengan cara lain - jadi saya cukup menghapusnya.
sumber
Saya memiliki masalah yang sama dan saya lupa mengimpor QuartzCore / QuartzCore.h, ini menyelesaikan masalah saya dengan kesalahan ini.
sumber
Jawaban Langsung: Masalahnya adalah karena Anda telah menggunakan elemen grafis Inti seperti CGContext dll
- (void)drawRect:(CGRect)rect
metode ini.Sekarang pindahkan kode Anda ke metode ini. Dan itu akan berhenti memberi Anda peringatan / Kesalahan.
sumber
Saya mendapatkan kesalahan ini karena saya menggunakan objek UIColor sebagai atribut dalam kamus NSAttributedString yang sedang digunakan dalam objek CATextLayer. Saya mengubah kamus untuk memegang CGColorRef dan kesalahan hilang.
sumber
Saya memiliki kasus di mana konteksnya kembali dari
UIGraphicsGetCurrentContext()
iniNULL
, dan jika Anda mencoba menggunakannya untuk apa pun ini muncul pesan. Adalah tanggung jawab pandangan untuk mendorong konteks menggunakanUIGraphicsPushContext
sebelum menelepondrawRect:
, jika Anda menelepondrawRect:
langsung alih-alih[view setNeedsDisplay]
mengambil risiko konteksnya belum ditetapkan. Firasat saya adalah bahwa sebelum iOS 7 konteksnya didorong untuk tampilan aktifinit
, dan sekarang pada iOS 7 konteksnya tidak didorong sampai pertama kalidrawRect:
akan dipanggil. Saya menduga beberapa kode UIKit memanggildrawRect:
langsung dan inilah mengapa ada masalah dengan beberapa kode bahkan ketika tidak ada gambar kustom yang dilakukan.Solusi (jika melakukan gambar kustom):
drawRect:
langsung, menggunakan[view setNeedsDisplay]
atau jika Anda perlu menggunakan menggambar segera[view.layer draw]
drawRect:
konteksnya Anda dapatkan tetapi jangan menggunakannya di luar isi pernyataan if iniif (context) {<do drawing here>}
sumber
Menonaktifkan autolayout dalam tampilan yang terpengaruh menyebabkan kesalahan ini hilang dalam beberapa kasus di mana Anda menempatkan dan memindahkan elemen UI (terutama yang kustom yang diambil secara terprogram) di dalam tampilan. Saya menggunakan JVFloatLabeledTextField ketika saya menemukan gejala ini.
sumber
Dalam beberapa kasus, Anda mungkin perlu memasukkan garis
#import <QuartzCore/QuartzCore.h>
.sumber
Saya mendapatkan kesalahan ini dalam metode drawInContext (..) dari implementasi CALayer kustom saya. UIBezierPath mencoba menggunakan UIGraphicsGetCurrentContext () yang nihil secara default di lapisan kustom. The dokumentasi online menjelaskan ini sangat jelas -
Inilah kode yang akhirnya bekerja dengan komentar saya sebaris (kode Swift, tetapi solusinya sama terlepas)
sumber
Dalam kasus saya, saya mengalami peringatan ini saat membuat gambar yang dapat direset dengan cap insets. Masalahnya adalah bahwa saya tidak meninggalkan setidaknya 1 piksel di area "tidak terbuka".
sumber
Saya membuat UIImage dari konteks menggunakan kode di bawah ini:
Jadi saya mendapatkan kesalahan.
Jadi saya menghapus konten Data yang Diperoleh, me-restart XCode saya. Dan itu berhasil.
sumber
Saya memiliki masalah yang sama. Dalam proyek saya, saya telah mencoba membuat textField dan menambahkannya ke file pdf saya. Kode Lama:
Setelah menyelesaikan masalah ini, kode berubah:
Saya menemukan solusi di UIColor SetFill tidak berfungsi . Dan terima kasih penolongnya.
sumber
Saya mendapat kesalahan dengan kode
dan setelah menghapus kode
Dunia menjadi sunyi
sumber
Bagi saya, jawabannya adalah bahwa saya tidak perlu merilis konteks grafis di
drawRect:
. Melemparkan breakpoint simbolis pada CGPostError mengarahkan saya ke pelakunya.sumber
Mendapat kesalahan ini seperti yang saya atur
Tanpa menerapkan salah satu rutin delegasi. Menghapus garis itu memecahkan masalah bagi saya
sumber
Saya memiliki masalah ini di UITextField ketika saya memegang sentuhan pada bidang kosong dengan teks placeholder saja. Saya menggunakan solusi berikut ini untuk menghilangkan bidang kosong:
sumber
Bagi saya, saya mendapatkan kesalahan ini karena saya melepaskan CGContextRef seperti yang ditunjukkan di bawah ini:
Menghapus rilis memecahkan masalah
sumber
Saya mendapatkannya ketika saya salah mengetik nama gambar dalam metode activityImage di subkelas UIActivity
Mengetik gambar yang tepat memecahkannya untuk saya.
sumber
Copot aplikasi dari simulator dan jalankan lagi
sumber
Seperti orang lain yang berkomentar di sini, saya mendapatkan peringatan ini ketika saya melakukan salah satu dari yang berikut:
Pada bidang teks kosong: Ketuk dua kali, sentuh dan tahan, ketuk tunggal yang panjang.
Ini sepertinya hanya mempengaruhi iOS 7.0.3
Saya menemukan pekerjaan di sekitar, peringatan tidak akan dipicu jika papan tulis Anda bukan NULL.
Jadi saya melakukan hal berikut di textFieldDidBeginEditing:
Saya menguji ini dalam simulator untuk iOS 7.0.3 pada iphone 4s, 5 dan 5s dan tidak lagi menerima peringatan. Saya juga menguji ini dalam simulator untuk iOS 8 pada iphone 6 dan 6 plus tetapi saya tidak percaya iOS 8 terpengaruh.
Pergi melalui dua hari frustrasi sebelum menemukan pekerjaan ini, jadi saya sangat berharap jawaban saya membantu Anda yang memiliki masalah yang sama.
sumber
Jika kesalahan terjadi ketika Anda menggunakan UIBezierPath dan mengatur warna untuk stroke atau mengisi, masukkan kode warna yang ditetapkan dalam fungsi drawRect daripada tempat lain.
sumber
Ini hacky tetapi berhasil untuk saya.
Saya mengatur
UIImageView
diUITableViewCell
'sinit
, berikan ukuran dan kendala.Kemudian pada pengontrol tampilan saya,
cellForRowAtIndexPath
saya melakukan ini:Dan itu menghindari kesalahan, maka di bawah itu dalam fungsi saya mengatur gambar yang sebenarnya untuk itu
UIImageView
. Kode di atas adalah standar yang baiksumber