একটিতে সি-কাঠামো সংরক্ষণ করার স্বাভাবিক উপায় কী NSArray? সুবিধা, অসুবিধাগুলি, স্মৃতি সামলানো?
উল্লেখযোগ্যভাবে, নীচে জাস্টিন এবং ক্যাটফিশ দ্বারা উত্থাপিত valueWithBytesএবং valueWithPointer- এর মধ্যে পার্থক্য কী ।
valueWithBytes:objCType:ভবিষ্যতের পাঠকদের জন্য অ্যাপলের আলোচনার একটি লিঙ্ক এখানে ...
কিছু ঘুরপথে সমাধানের চিন্তা এবং আরো কর্মক্ষমতা দিকে তাকিয়ে জন্য, Evgen ব্যবহার ইস্যু তুলেছে STL::vectorমধ্যে সি ++ ।
(এটি একটি আকর্ষণীয় বিষয় উত্থাপন করে: একটি দ্রুত সি লাইব্রেরি কি অসদৃশ নয় STL::vectorতবে অনেক বেশি হালকা, এটি ন্যূনতম "অ্যারেগুলির পরিপাটি পরিচালনা" এর জন্য অনুমতি দেয় ...?)
সুতরাং আসল প্রশ্ন ...
উদাহরণ স্বরূপ:
typedef struct _Megapoint {
float w,x,y,z;
} Megapoint;
সুতরাং: নিজের মতো করে কাঠামোটি সংরক্ষণ করার মতো সাধারণ, সর্বোত্তম, মূর্তিমান পদ্ধতি কী NSArrayএবং আপনি কীভাবে সেই মূর্তিটিতে মেমরি পরিচালনা করবেন?
দয়া করে নোট করুন যে আমি বিশেষভাবে স্ট্রাক্ট সঞ্চয় করার জন্য সাধারণ প্রতিমাটির সন্ধান করছি। অবশ্যই, কেউ একটি নতুন ছোট ক্লাস তৈরি করে বিষয়টি এড়াতে পারে। যাইহোক আমি জানতে চাই যে কীভাবে একটি সাধারণ অ্যারেতে স্ট্রাক্ট রাখার জন্য সাধারণ প্রতিমাটি, ধন্যবাদ।
বিটিডব্লিউ এখানে এনএসডিটা অ্যাপ্রোচ যা সম্ভবত? সেরা না ...
Megapoint p;
NSArray *a = [NSArray arrayWithObjects:
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
nil];
রেফারেন্সের পয়েন্ট হিসাবে বিটিডাব্লু এবং জারেট হার্ডিকে ধন্যবাদ, এখানে কীভাবে সংরক্ষণ করতে হবে CGPointsএবং কীভাবে মিলবে তা এখানে NSArray:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
nil];
(দেখুন কীভাবে আমি এনজিআরাইতে সহজ উপায়ে সিজিপিউইন্ট অবজেক্ট যুক্ত করতে পারি? )