اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

سوالات و مشکلات در XCode(برنامه نویسی آیفون)

Collapse
این تاپیک مهم علامت‌گذاری شده است.
X
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • سوالات و مشکلات در XCode(برنامه نویسی آیفون)

    سلام. این تاپیک هم باشه برای اینکه اگه کسی
    سوالی و مشکلی تو برنامه نویسی با XCode داشت بپرسه




    به عنوان اولین سوال :
    در مورد instant variable ها یه توضیح میخواستم ...








    تنکس

  • #2
    نوشته اصلی توسط Leopard نمایش پست ها
    سلام. این تاپیک هم باشه برای اینکه اگه کسی
    سوالی و مشکلی تو برنامه نویسی با XCode داشت بپرسه

    به عنوان اولین سوال :
    در مورد instant variable ها یه توضیح میخواستم ...
    تنکس
    ببین وقتی میخوای یک کلاس class رو تعریف کنی در واقع چندین کا انجام میدی :

    1- به کامپایلر Objective c میگی که کلاس از کجا اومده ، که parent class نامیده میشه .یا وارثش چی هست .

    کد:
    @interface LeopardApplication : parentClass [UIViewController , NSObject ....
    2- خب حالا باید دیتا کلاست که قرار هست در Object ذخیره بشه رو مشخص کنی ، یا بهتر بگم باید اعضای تشکیل دهنده (member) دیتا ی کلاس رو تعریف کنی . به این اعضا یا member میگن instant variable
    مثلا من یه شی دارم قرار هست به وسیله کلاس UIWebView نام گذاری و مشخص بشه .

    شکل کلی میشه این :


    کد:
    @interface LeopardApp : UIViewController //Parent Class  {
    
    	UIWebView *myWeb;  //instant variable
    }
    و دست آخر باید نوع عملیات رو تعریف کنی یا همون Method ها که میتونن در زمان کار Object کلاس ها استفاده بشن . همه اینها در بخش مشخص به اسم @interface انجام میشه ، حالا آموزش سوم کامل با method ها و ... کار میکنیم . اگه بد توضیح دادم معذرت چون تاحالا برنامه نویسی کار نکردم خیلی تعریف درستی از اصطلاحها بلد نیستم
    ویرایش توسط Momeks : https://i-phone.ir/forums/member/108-momeks در ساعت 09-11-2009, 11:44 PM

    نظر


    • #3


      محمد اگه تونستی یه توضیحی در مورد قسمتای Drawingو Interaction بده.مثلا Opaque چی کار میکنه؟
      مرسی

      نظر


      • #4
        retain , nonatomic , assign

        با عرض سلام خدمت دوستان و جناب Momeks
        ممنون میشیم اگر در مورد کاری که این 3 موردی که نوشتم retain , nonatomic , assign انجام میدن توضیح بفرمایید .
        به جز استفاده از اونها در property یه بار هم میخواستم یه کلید با لبه های گرد بسازم که به مشکل میخورد (یا متن روی کلید نمیومد یا از برنامه خارج میشد و ... ) که در نهایت در مثالهای خود اپل دیدم که از retain استفاده کرده .
        کد:
        UIButton * MyButton=[UIButton ButtonWithType:UIButtonTypeRoundRect]retain]
        با تشکر فراوان .

        نظر


        • #5
          نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
          با عرض سلام خدمت دوستان و جناب Momeks
          ممنون میشیم اگر در مورد کاری که این 3 موردی که نوشتم retain , nonatomic , assign انجام میدن توضیح بفرمایید .
          به جز استفاده از اونها در property یه بار هم میخواستم یه کلید با لبه های گرد بسازم که به مشکل میخورد (یا متن روی کلید نمیومد یا از برنامه خارج میشد و ... ) که در نهایت در مثالهای خود اپل دیدم که از retain استفاده کرده .
          کد:
          UIButton * MyButton=[UIButton ButtonWithType:UIButtonTypeRoundRect]retain]
          با تشکر فراوان .

          سوال دومت رو الان جواب میدم سوال اولی مفصل تره دارم میرم امتحان بدم به زودی جوابت و میدوم
          بخاطر این از retain استفاده میکنی که باید آبجکت UIButton رو ریلیز کنی و گرنه با memory leak مواجه میشی ... (واسه همین کرش میکنه ) یعنی بهتر بگم باید متودت رو رلیز کنی تا اجرا کنه
          درضمن این کد بیشتر برای ساخت یه دکمه کاستوم استفاده میشه مثلا وقتی یه کاستوم navigation bar میسازی ! میتوونی راحت با interface builder ایجاد کنی
          ویرایش توسط Momeks : https://i-phone.ir/forums/member/108-momeks در ساعت 14-06-2010, 03:56 PM

          نظر


          • #6
            تشکر

            نوشته اصلی توسط momeks نمایش پست ها
            سوال دومت رو الان جواب میدم سوال اولی مفصل تره دارم میرم امتحان بدم به زودی جوابت و میدوم
            بخاطر این از retain استفاده میکنی که باید آبجکت uibutton رو ریلیز کنی و گرنه با memory leak مواجه میشی ... (واسه همین کرش میکنه ) یعنی بهتر بگم باید متودت رو رلیز کنی تا اجرا کنه
            درضمن این کد بیشتر برای ساخت یه دکمه کاستوم استفاده میشه مثلا وقتی یه کاستوم navigation bar میسازی ! میتوونی راحت با interface builder ایجاد کنی
            سلام
            ممنون از جوابتون . همین قسمت دوم هم خیلی کامل بود توضیحاتتون . هنوز واسم زیاد مشکلات مموری لیک و ... جا نیفتاده ولی با توضیحات شما و اینکه علت کرش کردن برنامه همین هست خیلی خوب متوجه این مساله شدم .

            نظر


            • #7
              نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
              سلام
              ممنون از جوابتون . همین قسمت دوم هم خیلی کامل بود توضیحاتتون . هنوز واسم زیاد مشکلات مموری لیک و ... جا نیفتاده ولی با توضیحات شما و اینکه علت کرش کردن برنامه همین هست خیلی خوب متوجه این مساله شدم .
              کلا این بحث memory management بحث کلیه خودمم زیاد ازش سر در نیوردم اما رفته رفته دستت میاد که چیکار کنی ... بهترین روش استفاده از Debugger هست که بهت میگه کجای کدت مشکل داره

              نظر


              • #8
                منبع

                سلام و خسته نباشید .
                یه سوال دیگه هم داشتم .
                دنبال یه منبع میگردم اطلاعات درمورد نوشتن برنامه هایی که همیشه فعال هستند داشته باشه .
                مثلا یه چیزی مثل blacklist یا دفترچه تلفنی که وقتی کسی زنگ میزنه اون بیاد روی صفحه .
                تو اینترنت گشتم چیزی در این مورد پیدا نکردم .
                ممنون میشم اگر دوباره راهنمای کنید .

                نظر


                • #9
                  نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
                  سلام و خسته نباشید .
                  یه سوال دیگه هم داشتم .
                  دنبال یه منبع میگردم اطلاعات درمورد نوشتن برنامه هایی که همیشه فعال هستند داشته باشه .
                  مثلا یه چیزی مثل blacklist یا دفترچه تلفنی که وقتی کسی زنگ میزنه اون بیاد روی صفحه .
                  تو اینترنت گشتم چیزی در این مورد پیدا نکردم .
                  ممنون میشم اگر دوباره راهنمای کنید .
                  راستش این سری برنامه ها تا قبل از ios4 نمیشد نوشت اما خب امکان جدید Ios4 یکیش اینه که برنامه هارو تو اصطلاحا میتونه تو بکگراند اجرا کنه ... چوون تازه اومده طبیعیه که منبع خواصی وجود نداشته باشه اما تو خود سایت اپل حتما هست اگه help ios4 رو بخونی

                  نظر


                  • #10
                    نوشته اصلی توسط momeks نمایش پست ها
                    راستش این سری برنامه ها تا قبل از ios4 نمیشد نوشت اما خب امکان جدید ios4 یکیش اینه که برنامه هارو تو اصطلاحا میتونه تو بکگراند اجرا کنه ... چوون تازه اومده طبیعیه که منبع خواصی وجود نداشته باشه اما تو خود سایت اپل حتما هست اگه help ios4 رو بخونی
                    ممنون .
                    ولی یه سری برنامه مثل همین بلک لیست روی همین پلتفرم های معمولی اجرا میشن .
                    و یا یه رفیقم یه برنامه داشت که حتی بدون اینکه قفل گوشی رو بازکنه برنامه در حال اجرا بود و چند تا ایکون نشون میداد و میتونست باهاشون کار کنه .

                    نظر


                    • #11
                      نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
                      ممنون .
                      ولی یه سری برنامه مثل همین بلک لیست روی همین پلتفرم های معمولی اجرا میشن .
                      و یا یه رفیقم یه برنامه داشت که حتی بدون اینکه قفل گوشی رو بازکنه برنامه در حال اجرا بود و چند تا ایکون نشون میداد و میتونست باهاشون کار کنه .
                      خب آره دیگه اینها مخصوص برنامه های سیدیا هست که بیشتر از

                      Private API و ... استفاده میشه ، این امکان رو دارن که تو بکگراند اجرا شه

                      نظر


                      • #12
                        Override

                        سلام
                        یه برنامه نوشتم که 2 تا UIViewController داره بدون فایل XIB که اینها اول اجرای برنامه در ApplicationDidFinishedLouncing لود میشن .

                        داخل خود هر کدوم از اینهادر متد loadview از این دستور استفاده میکنم :

                        کد:
                        self.view=[[UIview alloc]initWithframe:screenRect

                        حالا یه سوال دارم :
                        میخوام متد drawRect رو در self.view ر override کنم .
                        چطور میتونم این کار رو بکنم ؟
                        و یا اینکه چطور میتونم برای self.view یه کلاس تعریف کنم مثل حالتیکه در اینترفیس بیلدر هست و اینطوری میتونم داخل اون کلاس متدی رو که میخوام override کنم .
                        (شرمنده اگه بعضی جمله هام اشتباهن و نامفهوم ،هنوز معنی بعضی اصطلاحات رو درست نفهمیدم )
                        پیشاپیش ممنون از راهنماییتون .
                        ویرایش توسط Mehdi_Sobhani : https://i-phone.ir/forums/member/18155-mehdi_sobhani در ساعت 17-06-2010, 09:12 AM

                        نظر


                        • #13
                          مشکل حل شد ، مورد دیگه

                          نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
                          سلام
                          یه برنامه نوشتم که 2 تا UIViewController داره بدون فایل XIB که اینها اول اجرای برنامه در ApplicationDidFinishedLouncing لود میشن .

                          داخل خود هر کدوم از اینهادر متد loadview از این دستور استفاده میکنم :

                          کد:
                          self.view=[[UIview alloc]initWithframe:screenRect

                          حالا یه سوال دارم :
                          میخوام متد drawRect رو در self.view ر override کنم .
                          چطور میتونم این کار رو بکنم ؟
                          و یا اینکه چطور میتونم برای self.view یه کلاس تعریف کنم مثل حالتیکه در اینترفیس بیلدر هست و اینطوری میتونم داخل اون کلاس متدی رو که میخوام override کنم .
                          (شرمنده اگه بعضی جمله هام اشتباهن و نامفهوم ،هنوز معنی بعضی اصطلاحات رو درست نفهمیدم )
                          پیشاپیش ممنون از راهنماییتون .
                          lسلام
                          ممنون مشکل حل شد .
                          خیلی راحت باید یه کلاس جدید میساختم که ساختم و حالا میتونم متد drawrect رو اورراید کنم در کدهای اون کلاس .
                          اما مورد دیگه ای که هست الان روی اون ویو هر چی میکشم دیده نمیشه چون روش یه ایمیج هست .
                          ممنون میشم اگر بفرمایید که چطوی میتونم CONTEXT اون ایمیج رو داشته باشم تا بتونم روی اون چیزی بکشم .
                          ممنون
                          ویرایش توسط Mehdi_Sobhani : https://i-phone.ir/forums/member/18155-mehdi_sobhani در ساعت 17-06-2010, 10:11 AM

                          نظر


                          • #14
                            نوشته اصلی توسط Mehdi_Sobhani نمایش پست ها
                            lسلام
                            ممنون مشکل حل شد .
                            خیلی راحت باید یه کلاس جدید میساختم که ساختم و حالا میتونم متد drawrect رو اورراید کنم در کدهای اون کلاس .
                            اما مورد دیگه ای که هست الان روی اون ویو هر چی میکشم دیده نمیشه چون روش یه ایمیج هست .
                            ممنون میشم اگر بفرمایید که چطوی میتونم CONTEXT اون ایمیج رو داشته باشم تا بتونم روی اون چیزی بکشم .
                            ممنون
                            sorry ندیده بودم این پستت رو ، دقیق میخوای چیکار کنی ؟
                            مثلا یه صفحه لود شه به نام touch to continue مثل بعضی از بازی ها؟

                            نظر


                            • #15
                              PickerView

                              سلام
                              درون كتاب هايي كه درباره Pickerview توضيح داده اند به اين صورت است كه يك مورد را در PickerView انتخاب مي كنيد بعد يه باتن رو touch مي كنيد تا از اون موردي كه انتخاب كرديد استفاده كنيد
                              ميشه همون موردي رو كه انتخاب كرده ايم touch كنيم و احتياج به يه باتن نباشه ؟

                              نظر

                              صبر کنید ..
                              X