سؤال

على وجه التحديد التحذير هو: "أنواع الهدف غير المتوافقة C" struct nsstring *"،" struct uiimage *"المتوقعة عند تمرير الوسيطة 4 من" objectwithtype: الاسم: الكود: صورة "من نوع Objective-C متميز". يتبع خطًا يشبه ذلك:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:@"image.png"],

لذا ، أفهم أنني قمت بإنشاء الفصل Object لأخذ نوع uiimage ، لكنني أقدمه بنوع NSString. إليك المشكلة: لا أعرف كيفية الإشارة إلى الصورة بشكل مختلف عن اسم ملفها.

(الاعتذار إذا كانت هذه مشكلة أساسية. أنا جديد على هذا وأحاول البحث عن حلول قبل النشر هنا. أي مساعدة يمكنك تقديمها موضع تقدير.)

هل كانت مفيدة؟

المحلول

أنت في الواقع بحاجة إلى مثيل UIImage, الذي تفهمه. لذلك ، طريقة الفصل imageNamed: عادة ما يستخدم لهذا:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];

قد يكون هناك خيار آخر (نظرًا لأنك تستخدم جميع الأوتار هنا) هو إعادة كتابة طريقتك بحيث يأخذ اسمًا بدلاً من صورة ثم إنشاء الصورة داخل تطبيق الطريقة. لذلك يمكنك تحديد الطريقة:

- (void)objectWithType:(NSString*)type name:(NSString*)name code:(NSString*)code imageName:(NSString*)imageName
{
  UIImage* theImage = [UIImage imageNamed:imageName];
  // do whatever
}

نصائح أخرى

استخدم [uiimage ImageNamed:]. ستعمل فقط على الصور التي تشكل جزءًا من مشروعك.

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]]

إذا تم تضمين "Image.png" في حزمة المشروع ، فيمكنك القيام بذلك لتمرير واجهة مستخدم بدلاً من NSString:

[Object objectWithType:@"Type" name:@"Name" code:@"0001" image:[UIImage imageNamed:@"image.png"]];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top